cannot find -lC:\SQLAPI\lib\sqlapi.lib in omnet++ IDE

373 Views Asked by At

I am running my simple C++ program in OMNET ++ IDE My code is as follows

**#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;
}**

I have already linked all the files but the error that i am getting is as follow

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

Where as the file sqlapi.lib is in the same folder but linker is not able to find it. Can someone tells me about the issue that why compiler is not able to link it .I am using MINGW as a C++ compiler. The screen shot is attached by with the question about the linked filesenter image description here

1

There are 1 best solutions below

4
Matthieu Brucher On

If you are using -l, then it should be followed by the library name only, so something like:

-lsqlapi

If you want to specify a search path, then:

-lsqlapi -LC:\SQLAPI\lib\

(Usually the path is in Linux mode, so `C:/SQLAPI/lib though).

Then if this doesn't work, you can always force the library to be linked by just using it as another object:

C:/SQLAPI/lib/sqlapi.lib

Note though that gcc doesn't link against Visual Studio static libraries, which sqlapi might (because of the extension being .lib and not .a, but then this may be the export library for a dll).