Question

Cela semble comme il devrait être très simple. Je compilé une bibliothèque Qt (cette bibliothèque NEWMAT ), et produit le fichier libnewmat.a. Maintenant, je dois intégrer cette bibliothèque dans un autre projet, mais je ne peux pas le faire fonctionner.

Je l'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 arrière dans 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 ce n'est pas le problème. Ce que je ne comprends pas que quand je ctrl + f la sortie du compilateur (qui affiche les commandes qui QMake utilise à 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 qui est où je pense que ce soit. Voici un exemple de la sortie du compilateur où j'attendre que la bibliothèque soit référencée si quelqu'un souhaite 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 pense qu'il ya quelque chose très simple que je manque ici.

J'utilise QtCreator sous Windows Vista.

Était-ce utile?

La solution

Je pense que les conditions d'identification sont sensibles à la casse:

win32:LIBS += libnewmat.a  # lowercase w

Autres conseils

J'ai le problème même. Est-il pas possible de créer un lien vers une bibliothèque statique d'une bibliothèque statique? Quoi qu'il en soit si vous faites une bibliothèque partagée en enlevant CONFIG+=static à partir du fichier .pro vous éviter ce problème.

Cordialement, H

u ne besoin de beaucoup de libs dans le fichier pro. essayez cela, il a travaillé pour moi.

Win32: INCLUDEPATH + =.

Win32: LIBS + = "C: / ... chemin ... / libnewmat.a"

ou

Win32. DEPENDPATH + =

Win32: LIBS + = "C: / ... chemin ... / libnewmat.a"

Aussi libnewmat.a peut-être bibliothèque linux .. normalement windows libs ont l'extension .lib .. ne sais pas si ..

-Arps

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top