Undefined reference to function availabel in external added library

  • I added external library by ADD LIBRARY method. When I am trying to use the functions available in library , errors are coming "undefined reference"
    My .pro file:-
    QT += core
    TARGET = libtnis
    SOURCES += main.cpp
    win32: LIBS += -L$$PWD/libtins-latest-win32/libtins-latest-win32/lib/ -ltins
    INCLUDEPATH += $$PWD/libtins-latest-win32/libtins-latest-win32/include
    DEPENDPATH += $$PWD/libtins-latest-win32/libtins-latest-win32/include
    win32:!win32-g++: PRE_TARGETDEPS += $$PWD/libtins-latest-win32/libtins-latest-win32/lib/tins.lib


    using namespace Tins ;
    int main()
    EthernetII eth;
    return 0;

    Following errors are coming while building the project………..
    C:\Qt\Tools\QtCreator\bin\build-lib_testing-Desktop_Qt_5_3_MinGW_32bit-Debug\debug\main.o:-1: In function `Z5qMainiPPc':

    C:\Qt\Tools\QtCreator\bin\lib_testing\main.cpp:12: error: undefined reference to Tins::EthernetII::EthernetII(Tins::HWAddress<6u, unsigned char> const&, Tins::HWAddress<6u, unsigned char> const&)' C:\Qt\Tools\QtCreator\bin\build-lib_testing-Desktop_Qt_5_3_MinGW_32bit-Debug\debug\main.o:-1: In functionZN4Tins10EthernetIID1Ev':
    C:\Qt\Tools\QtCreator\bin\lib_testing\libtins-latest-win32\libtins-latest-win32\include\tins\ethernetII.h:45: error: undefined reference to `vtable for Tins::EthernetII

    Is it problem of linker i.e . linker is unable to find definition of functions.

  • Moderators

    Hi, welcome to devnet.

    Have you tried to re-run qmake after adding the library (Build->Run qmake)? Changes in the .pro file are not picked up automatically.

  • Yeah , I tried it every time after making changes in .pro file.
    Same problem I am facing when I added winpcap library into my project.

  • Moderators

    Are the paths correct? "libtins-latest-win32" is doubled in them.
    It also seems strange that you would have your project inside the QtCreator directory. Do you really keep it there?

  • Yeah path is correct. I think it is problem of linker but I am not getting it.
    I tried with double quotation also.

Log in to reply