Qtの中にライブラリを含め、なぜこの作業ではないでしょうか?
-
19-09-2019 - |
質問
これがそうです。私は(この newmatライブラリの)Qtの中でライブラリをコンパイルし、ファイルlibnewmat.aを生産しました。今、私は別のプロジェクトにこのライブラリを統合する必要があるが、私はちょうどそれが仕事を得ることができません。
私は私の.PROファイルを含むでLIBS変数を持ついくつかの異なるものを試してみた:
Win32:LIBS += libnewmat.a #library is in same directory as the project
Win32:LIBS += "C:/...path.../libnewmat.a"
Win32:LIBS += L"C:/...path..." -lnewmat
私もパスで前進とバックスラッシュを使用してみましたが、それは何の違いが行われていません。私はまた、確認するために、このチェックを含め、ライブラリが実際に発見されます:
!exists(libnewmat.a) {
error("libnewmat.a does not exist")
}
だから私はそれが問題ではありません知っています。私は理解していないことは、私は(コマンドラインで使用しているqmakeのコマンドを表示する)コンパイラの出力F + CTRLとき、私は、ライブラリへの参照が見つからないということです。何らかの理由で私のLIBS変数は、私はそれがあることを期待するところであるコマンドライン上の任意の違いを作っていません。ここでは誰もがダブルチェックしたい場合、私は、ライブラリを参照することが期待されるコンパイラの出力のサンプルがあります:
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
私はここに欠けていることは本当にシンプルなものがあると思います。
私は、Windows Vista上でQtCreatorを使用しています。
解決
私は、スコープ条件が大文字と小文字を区別していると思います:
win32:LIBS += libnewmat.a # lowercase w
他のヒント
私は非常に同じ問題を抱えてきました。それは静的ライブラリから静的ライブラリにリンクすることはできませんか?あなたは.PROファイルからのCONFIG+=static
を除去することにより、共有ライブラリを作る場合はとにかくあなたは、この問題を回避ます。
乾杯、 H
uがプロファイルにLIBSの多くを必要といけません。それは私のために働いた、これを試してみます。
のWin32:インクルードパス+ =。
のWin32:LIBS + = "C:/ ...パス... / libnewmat.a"
または
のWin32:。DEPENDPATH + =
のWin32:LIBS + = "C:/ ...パス... / libnewmat.a"
またlibnewmat.aは、通常のWindowsのlibsはしかし..
..わからない拡張子を.LIBている... linuxのライブラリであるかもしれません-Arps