2009-07-28 10 views
0

これは本当にシンプルなはずです。 Qt(newmat library)にライブラリをコンパイルし、libnewmat.aというファイルを作成しました。今私はこのライブラリを別のプロジェクトに統合する必要がありますが、動作させることができません。Qtにライブラリを含めると、なぜこれは機能しませんか?

私は含めて私の.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がコマンドラインで使用しているコマンドを表示するコンパイラの出力をCtrl + Fキーで押すと、ライブラリへの参照が見つかりません。何らかの理由で、私の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を使用しています。

答えて

4

私は、スコープ条件では大文字と小文字が区別されていると思う:

win32:LIBS += libnewmat.a # lowercase w 
0

私は非常に同じ問題を抱えてきました。静的ライブラリから静的ライブラリにリンクすることはできませんか?あなたが共有ライブラリを作成した場合でも、.proファイルからCONFIG+=staticを削除すると、この問題は回避されます。

乾杯、 H

0

uがプロファイルにLIBSの多くを必要といけません。これを試して、それは私のために働いた。

Win32:INCLUDEPATH + =。

のWin32:LIBS + = "C:/ ...パス.../libnewmat.a"

または

のWin32:DEPENDPATH + =。

のWin32:LIBS + = "C:/ ...パス.../libnewmat.a" また

libnewmat.aは、通常のWindowsのlibsが.LIB拡張子を持っている... linuxのライブラリであるかもしれない...わかりませんしかし..

-Arps

関連する問題