Ошибка неопределенной ссылки при добавлении внешней библиотеки (SQLAPI++)

Я занимаюсь разработкой приложения на C++ (имя этого приложения - SGBD Rasore) с 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 (где находятся заголовки, т.е..h)

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)

Что я должен сделать, чтобы устранить эту ошибку и иметь возможность запустить программу? Может ли кто-нибудь объяснить мне это шаг за шагом?

заранее спасибо

0 ответов

Другие вопросы по тегам