在 omnet++ IDE 中找不到 -lC:SQLAPIlibsqlapi.lib

cannot find -lC:SQLAPIlibsqlapi.lib in omnet++ IDE

本文关键字:lib sqlapi SQLAPI -lC omnet++ IDE 找不到      更新时间:2023-10-16

我正在OMNET ++ IDE中运行我的简单C++程序我的代码如下

**#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("%sn", (const char*)x.ErrText());
    }
    return 0;
}**

我已经链接了所有文件,但我收到的错误如下

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

其中,文件sqlapi.lib位于同一文件夹中,但链接器无法找到它。有人可以告诉我为什么编译器无法链接它的问题.我正在使用MINGW作为C++编译器。屏幕截图附有有关链接文件的问题在此处输入图像描述

如果您使用的是 -l ,那么它应该只跟库名称,因此如下所示:

-lsqlapi

如果要指定搜索路径,则:

-lsqlapi -LC:SQLAPIlib

(通常路径处于Linux模式,所以'C:/SQLAPI/lib)。

然后,如果这不起作用,您可以随时通过将库用作另一个对象来强制链接库:

C:/SQLAPI/lib/sqlapi.lib

请注意,虽然 gcc 不会链接到 Visual Studio 静态库,sqlapi可能会(因为扩展名是.lib而不是.a,但这可能是dll的导出库)。