Einschließlich einer Bibliothek in Qt, warum ist das nicht funktioniert?
-
19-09-2019 - |
Frage
Dies scheint, wie es wirklich einfach sein sollte. Ich stellte eine Bibliothek in Qt (diese NEWMAT Bibliothek ) und die Datei libnewmat.a erzeugt. Jetzt muß ich diese Bibliothek in ein anderes Projekt integrieren, aber ich kann es einfach nicht an der Arbeit.
Ich habe ein paar anderen Dinge mit der LIBS Variable versucht, in meiner .proDatei einschließlich:
Win32:LIBS += libnewmat.a #library is in same directory as the project
Win32:LIBS += "C:/...path.../libnewmat.a"
Win32:LIBS += L"C:/...path..." -lnewmat
Ich habe sogar versucht, nach vorne und hinten Schrägstriche im Pfad verwenden, aber es machte keinen Unterschied. Ich auch diese Prüfung sicherstellen, dass die Bibliothek tatsächlich gefunden:
!exists(libnewmat.a) {
error("libnewmat.a does not exist")
}
Also ich weiß, dass nicht das Problem ist. Was ich nicht verstehe, ist, dass, wenn ich Strg + f die Compiler Ausgabe (die zeigt die Befehle, die Qmake an der Kommandozeile), habe ich keinen Hinweis auf die Bibliothek. Aus irgendeinem Grunde ist meine LIBS Variable macht keinen Unterschied in der Befehlszeile, die, wo ich ist, würde zu erwarten, dass es sein. Hier ist ein Beispiel des Compilers ausgegeben, wo ich die Bibliothek erwarten würde referenziert werden, wenn jemand zu überprüfen möchte:
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
Ich vermute, dass es etwas wirklich einfach ist, dass ich hier bin fehlt.
Ich verwende QtCreator auf Windows Vista.
Lösung
Ich denke, die Umfang Bedingungen sind Groß- und Kleinschreibung:
win32:LIBS += libnewmat.a # lowercase w
Andere Tipps
habe ich das gleiche Problem. Ist es nicht möglich Link zu einer statischen Bibliothek aus einer statischen Bibliothek? Wie auch immer, wenn Sie eine gemeinsame Bibliothek zu machen, indem CONFIG+=static
von .proDatei Sie dieses Problem zu vermeiden.
Cheers, H
u nicht eine Menge Libs in Pro-Datei benötigen. versuchen Sie dies, ist es für mich gearbeitet.
Win32: INCLUDEPATH + =.
Win32: LIBS + = "C: / ... Pfad ... / libnewmat.a"
oder
Win32:. DEPENDPATH + =
Win32: LIBS + = "C: / ... Pfad ... / libnewmat.a"
Auch libnewmat.a könnte Linux-Bibliothek sein .. normalerweise Fenster Libs haben LIB-Erweiterung .. nicht sicher, obwohl ..
-Arps