Link external library - undefined reference to function



  • Hello,

    I would like to add an external library called pHash. I added this to .pro file :

    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Libs/pHash-0.9.4/release -lpHash
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Libs/pHash-0.9.4/debug -lpHash
    
    INCLUDEPATH += $$PWD/Libs/pHash-0.9.4
    DEPENDPATH += $$PWD/Libs/pHash-0.9.4
    
    win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/Libs/pHash-0.9.4/release/pHash.lib
    else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/Libs/pHash-0.9.4/debug/pHash.lib
    

    But no one function of the library is working. When I try to use one, I have build error "undefined reference to pHashFunction". There is an example of use :

    #include "myclass.h"
    
    #define HAVE_IMAGE_HASH 1 // config
    #include "pHash.h"
    
    void MyClass::perform() {
    	const char *msg = ph_about();
    	qDebug() << msg;
    }
    

    Then there is the build log :

    C:/Qt/Tools/mingw492_32/bin/mingw32-make -f Makefile.Debug clean
    mingw32-make[1]: Entering directory 'C:/Users/vi/Documents/Programmation/QtWorkspace/build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    rm -f debug/qrc_qml.cpp
    rm -f debug/moc_myclass.cpp
    rm -f debug/main.o debug/myclass.o debug/qrc_qml.o debug/moc_myclass.o
    mingw32-make[1]: Leaving directory 'C:/Users/vi/Documents/Programmation/QtWorkspace/build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    C:/Qt/Tools/mingw492_32/bin/mingw32-make -f Makefile.Release clean
    mingw32-make[1]: Entering directory 'C:/Users/vi/Documents/Programmation/QtWorkspace/build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    rm -f release/qrc_qml.cpp
    rm -f release/moc_myclass.cpp
    rm -f release/main.o release/myclass.o release/qrc_qml.o release/moc_myclass.o
    mingw32-make[1]: Leaving directory 'C:/Users/vi/Documents/Programmation/QtWorkspace/build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    01:31:34: Le processus "C:\Qt\Tools\mingw492_32\bin\mingw32-make.exe" s'est terminé normalement.
    01:31:34: Configuration inchangée, étape qmake sautée.
    01:31:34: Débute : "C:\Qt\Tools\mingw492_32\bin\mingw32-make.exe" 
    C:/Qt/Tools/mingw492_32/bin/mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory 'C:/Users/vi/Documents/Programmation/QtWorkspace/build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../myProject -I. -I../myProject/Libs/pHash-0.9.4 -IC:/Qt/5.5/mingw492_32/include -IC:/Qt/5.5/mingw492_32/include/QtQuick -IC:/Qt/5.5/mingw492_32/include/QtGui -IC:/Qt/5.5/mingw492_32/include/QtANGLE -IC:/Qt/5.5/mingw492_32/include/QtQml -IC:/Qt/5.5/mingw492_32/include/QtNetwork -IC:/Qt/5.5/mingw492_32/include/QtCore -Idebug -IC:/Qt/5.5/mingw492_32/mkspecs/win32-g++  -o debug/main.o ../myProject/main.cpp
    g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../myProject -I. -I../myProject/Libs/pHash-0.9.4 -IC:/Qt/5.5/mingw492_32/include -IC:/Qt/5.5/mingw492_32/include/QtQuick -IC:/Qt/5.5/mingw492_32/include/QtGui -IC:/Qt/5.5/mingw492_32/include/QtANGLE -IC:/Qt/5.5/mingw492_32/include/QtQml -IC:/Qt/5.5/mingw492_32/include/QtNetwork -IC:/Qt/5.5/mingw492_32/include/QtCore -Idebug -IC:/Qt/5.5/mingw492_32/mkspecs/win32-g++  -o debug/myclass.o ../myProject/myclass.cpp
    In file included from ../myProject/myclass.cpp:3:0:
    ../myProject/Libs/pHash-0.9.4/pHash.h:299:21: warning: 'cimg_library::CImg<float>* ph_dct_matrix(int)' declared 'static' but never defined [-Wunused-function]
     static CImg<float>* ph_dct_matrix(const int N);
    					 ^
    'C:\Qt\5.5\mingw492_32\bin\rcc.exe' -name qml ../myProject/qml.qrc -o debug/qrc_qml.cpp
    g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../myProject -I. -I../myProject/Libs/pHash-0.9.4 -IC:/Qt/5.5/mingw492_32/include -IC:/Qt/5.5/mingw492_32/include/QtQuick -IC:/Qt/5.5/mingw492_32/include/QtGui -IC:/Qt/5.5/mingw492_32/include/QtANGLE -IC:/Qt/5.5/mingw492_32/include/QtQml -IC:/Qt/5.5/mingw492_32/include/QtNetwork -IC:/Qt/5.5/mingw492_32/include/QtCore -Idebug -IC:/Qt/5.5/mingw492_32/mkspecs/win32-g++  -o debug/qrc_qml.o debug/qrc_qml.cpp
    'C:\Qt\5.5\mingw492_32\bin\moc.exe' -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -D__GNUC__ -DWIN32 -IC:/Qt/5.5/mingw492_32/mkspecs/win32-g++ -IC:/Users/vi/Documents/Programmation/QtWorkspace/myProject -IC:/Users/vi/Documents/Programmation/QtWorkspace/myProject/Libs/pHash-0.9.4 -IC:/Qt/5.5/mingw492_32/include -IC:/Qt/5.5/mingw492_32/include/QtQuick -IC:/Qt/5.5/mingw492_32/include/QtGui -IC:/Qt/5.5/mingw492_32/include/QtANGLE -IC:/Qt/5.5/mingw492_32/include/QtQml -IC:/Qt/5.5/mingw492_32/include/QtNetwork -IC:/Qt/5.5/mingw492_32/include/QtCore -I. ../myProject/myclass.h -o debug/moc_myclass.cpp
    g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../myProject -I. -I../myProject/Libs/pHash-0.9.4 -IC:/Qt/5.5/mingw492_32/include -IC:/Qt/5.5/mingw492_32/include/QtQuick -IC:/Qt/5.5/mingw492_32/include/QtGui -IC:/Qt/5.5/mingw492_32/include/QtANGLE -IC:/Qt/5.5/mingw492_32/include/QtQml -IC:/Qt/5.5/mingw492_32/include/QtNetwork -IC:/Qt/5.5/mingw492_32/include/QtCore -Idebug -IC:/Qt/5.5/mingw492_32/mkspecs/win32-g++  -o debug/moc_myclass.o debug/moc_myclass.cpp
    g++ -Wl,-subsystem,windows -mthreads -o debug/myProject.exe debug/main.o debug/myclass.o debug/qrc_qml.o debug/moc_myclass.o  -lmingw32 -LC:/Qt/5.5/mingw492_32/lib -lqtmaind -lshell32 -LC:/Users/vi/Documents/Programmation/QtWorkspace/myProject/Libs/pHash-0.9.4/debug -lpHash -lQt5Quickd -lQt5Guid -lQt5Qmld -lQt5Networkd -lQt5Cored 
    debug/myclass.o: In function `ZN6myclass7performEv':
    C:\Users\vi\Documents\Programmation\QtWorkspace\build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug/../myProject/myclass.cpp:11: undefined reference to `ph_about'
    collect2.exe: error: ld returned 1 exit status
    Makefile.Debug:83: recipe for target 'debug/myProject.exe' failed
    mingw32-make[1]: *** [debug/myProject.exe] Error 1
    mingw32-make[1]: Leaving directory 'C:/Users/vi/Documents/Programmation/QtWorkspace/build-myProject-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    makefile:34: recipe for target 'debug' failed
    mingw32-make: *** [debug] Error 2
    

    Thank you in advance for your help :)


  • Lifetime Qt Champion

    Hi,

    What compiler was used to build pHash ?



  • Finally I used a similar library in server side.
    pHash library wasn't compatible with Qt5


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.