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.

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top