невозможно найти -lC: \ SQLAPI \ lib \ sqlapi.lib в омнет ++ IDE - PullRequest
0 голосов
/ 22 января 2019

Я запускаю свою простую программу на C ++ в среде IDE OMNET ++ Мой код выглядит следующим образом

**#include <stdio.h>  // for printf
#include <string.h>
#include <SQLAPI.h> // main SQLAPI++ header
//#include <asaAPI.h>


int main(int argc, char* argv[])
{
    SAConnection con;
    con.setOption( "UseAPI" ) = "DB-Library";
    con.setClient( SA_SQLServer_Client );
    try
    {

                con.Connect(
                "paper2"
                "NADRA",
                "",
                SA_SQLServer_Client);

        printf("We are connected!\n");

        // Disconnect is optional
        // autodisconnect will occur in destructor if needed
        //con.Disconnect();

        printf("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
        printf("%s\n", (const char*)x.ErrText());
    }

    return 0;
}**

Я уже связал все файлы, но я получаю следующую ошибку

c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lC:\SQLAPI\lib\sqlapi.lib
collect2.exe: error: ld returned 1 exit status

Где файл sqlapi.lib находится в той же папке, но компоновщик не может его найти. Может кто-то говорит мне о проблеме, почему компилятор не может связать его. Я использую MINGW в качестве компилятора C ++. Снимок экрана прилагается с вопросом о связанных файлах введите описание изображения здесь

1 Ответ

0 голосов
/ 22 января 2019

Если вы используете -l, то за ним должно следовать только имя библиотеки, что-то вроде:

-lsqlapi

Если вы хотите указать путь поиска, то:

-lsqlapi -LC:\SQLAPI\lib\

(Обычно путь в режиме Linux, поэтому `C: / SQLAPI / lib).

Тогда, если это не сработает, вы всегда можете принудительно связать библиотеку, просто используя ее как другой объект:

C:/SQLAPI/lib/sqlapi.lib

Обратите внимание, что gcc не связывается со статическими библиотеками Visual Studio, что может sqlapi (из-за расширения .lib, а не .a, но тогда это может быть библиотека экспорта для dll ).

...