Я разрабатываю приложение на C ++ (название этого приложения СГБД Расоре) с IDE NetBeans 8.2 (для C / C +++) в Windows 10 и для этого мне нужен доступ к базе данных, разработанной с помощью Oracle 11g и управляемой SQL Developer. Чтобы облегчить свою работу, я хотел использовать SQLAPI +++ (http://www.sqlapi.com/). Я скачал эту библиотеку из http://www.sqlapi.com/Download/sqlapi_trial.exe и распаковал его (в папке с именем BD на рабочем столе).
В моем проекте NetBeans я сделал следующее:
Properties=>Build=>C++ Compiler=>Include Directories
и я написал там ../../../Desktop/BD/SQLAPI/include
(где находятся заголовки, т. е. ч)
Properties=>Build=>Linker=>Libraries
и я должен добавить libsqlapi.a от SQLAPI/MinGW-5.1.0-tdm64/lib
Properties=>Build=>Linker=>Additional Library Directories
и я написал там ../../../Desktop/BD/SQLAPI/MinGW-5.1.0-tdm64/lib
Там нет синтаксических ошибок и проблем, когда я пишу #include <SQLAPI.h>
, но, когда я пытаюсь выполнить следующий пример кода, скопированного из http://www.sqlapi.com/Examples/step1.cpp:
#include <iostream>
#include <SQLAPI.h>
using namespace std;
int main() {
SAConnection con; // create connection object
cout << "Empieza el intento\n";
try
{
// connect to database
// in this example it is Oracle,
// but can also be Sybase, Informix, DB2
// SQLServer, InterBase, SQLBase and ODBC
con.Connect(
"pruebaRAUCM", // database name
"carmor06", // user name
"1234", // password
SA_Oracle_Client);
cout << "We are connected!\n";
// Disconnect is optional
// autodisconnect will ocur in destructor if needed
con.Disconnect();
cout << "We are disconnected!\n";
}
catch (SAException &x)
{
// SAConnection::Rollback()
// can also throw an exception
// (if a network error for example),
// we will be ready
try
{
// on error rollback changes
con.Rollback();
}
catch (SAException &)
{
}
// print error message
cout << "%s\n" << (const char*)x.ErrText();
}
return 0;
}
Я получаю это сообщение об ошибке:
cd 'C:\Users\user\Documents\NetBeansProjects\SGBD Rasore'
C:\MinGW\msys\1.0\bin\make.exe -f Makefile CONF=Debug
"/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/c/Users/user/Documents/NetBeansProjects/SGBD Rasore'
"/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/sgbd_rasore.exe
make.exe[2]: Entering directory `/c/Users/user/Documents/NetBeansProjects/SGBD Rasore'
mkdir -p dist/Debug/MinGW-Windows
g++ -o dist/Debug/MinGW-Windows/sgbd_rasore build/Debug/MinGW-Windows/main.o -L../../../Desktop/BD/SQLAPI/MinGW-5.1.0-tdm64/lib -lsqlapi
build/Debug/MinGW-Windows/main.o: In function `main':
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:7: undefined reference to `SAConnection::SAConnection()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::SAString(char const*)'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::SAString(char const*)'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::SAString(char const*)'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:19: undefined reference to `SAConnection::Connect(SAString const&, SAString const&, SAString const&, eSAClient, void ( cdecl*)(SAConnection&, eSAConnectionHandlerType))'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:25: undefined reference to `SAConnection::Disconnect()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:7: undefined reference to `SAConnection::~SAConnection()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:15: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:38: undefined reference to `SAConnection::Rollback()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:44: undefined reference to `SAException::ErrText() const'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:44: undefined reference to `SAString::operator char const*() const'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:44: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:44: undefined reference to `SAString::~SAString()'
C:\Users\user\Documents\NetBeansProjects\SGBD Rasore/main.cpp:7: undefined reference to `SAConnection::~SAConnection()'
collect2.exe: error: ld returned 1 exit status
make.exe[2]: *** [dist/Debug/MinGW-Windows/sgbd_rasore.exe] Error 1
make.exe[2]: Leaving directory `/c/Users/user/Documents/NetBeansProjects/SGBD Rasore'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/c/Users/user/Documents/NetBeansProjects/SGBD Rasore'
make.exe": *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 1s)
Что я должен сделать, чтобы устранить эту ошибку и иметь возможность запустить программу? Может ли кто-нибудь объяснить мне это шаг за шагом?
заранее спасибо
Задача ещё не решена.
Других решений пока нет …