Cela semble être très simple. J'ai compilé une bibliothèque dans Qt (ce newmat library), et a produit le fichier libnewmat.a. Maintenant, j'ai besoin d'intégrer cette bibliothèque dans un autre projet, mais je ne peux tout simplement pas le faire fonctionner.Y compris une bibliothèque dans Qt, pourquoi cela ne fonctionne-t-il pas?
J'ai essayé quelques choses différentes avec la variable LIBS dans mon fichier .pro y compris:
Win32:LIBS += libnewmat.a #library is in same directory as the project
Win32:LIBS += "C:/...path.../libnewmat.a"
Win32:LIBS += L"C:/...path..." -lnewmat
J'ai même essayé d'utiliser des barres obliques avant et en arrière sur le chemin, mais il n'a fait aucune différence. Je ajoute aussi cette vérification pour vous assurer que la bibliothèque est effectivement trouvé:
!exists(libnewmat.a) {
error("libnewmat.a does not exist")
}
Je sais que c'est pas le problème. Ce que je ne comprends pas, c'est que quand je ctrl + f la sortie du compilateur (qui affiche les commandes que qmake utilise sur la ligne de commande), je ne trouve aucune référence à la bibliothèque. Pour une raison quelconque, ma variable LIBS ne fait aucune différence sur la ligne de commande, ce à quoi je m'attendrais. Voici un exemple de la sortie du compilateur où j'attendre que la bibliothèque soit référencée si quelqu'un voudrait vérifier:
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\Qt\2009.02\qt\include\QtCore" -I"..\..\..\..\Qt\2009.02\qt\include\QtGui" -I"..\..\..\..\Qt\2009.02\qt\include\QtOpenGL" -I"..\..\..\..\Qt\2009.02\qt\include" -I"..\Visual Studio Projects\NewMatProj\newmat10" -I"..\..\..\..\Qt\2009.02\qt\include\ActiveQt" -I"debug" -I"." -I"..\..\..\..\Qt\2009.02\qt\mkspecs\win32-g++" -o debug\moc_Window.o debug\moc_Window.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\GLPractice.exe debug/main.o debug/GLWidget.o debug/Window.o debug/CGSWidget.o debug/moc_GLWidget.o debug/moc_Window.o -L"c:\Qt\2009.02\qt\lib" -lopengl32 -lglu32 -lgdi32 -luser32 -lmingw32 -lqtmaind -lQtOpenGLd4 -lQtGuid4 -lQtCored4
Je soupçonne qu'il ya quelque chose de vraiment simple que je suis absent ici. J'utilise QtCreator sur Windows Vista.