VS2008 から Qt Creator に移行しています (ただし、Windows ではまだ msvc2008 コンパイラを使用しています)。VS2008 でコンパイルされたライブラリ (.lib) があります。
現在、Windows 上の Qt Creator では、私のプログラムとリンクしていません。未解決の外部情報があります。
なぜそれが起こっているのですか?
すべてのコンパイラ フラグを Visual Studio と同じように設定しようとしました (問題なくリンクしています)。これを引き起こす可能性のあるコンパイラフラグは何ですか? VS コンパイル コマンド:
/Od /I "XXX\inc" /I ".\GeneratedFiles" /I "C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include" /I ".\GeneratedFiles\Debug" /I "C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\qtmain" /I "C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtCore" /I "C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtGui" /I "C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtSql" /I ".\\" /I "XXX\inc" /D "UNICODE" /D "WIN32" /D "QT_LARGEFILE_SUPPORT" /D "QT_CORE_LIB" /D "QT_GUI_LIB" /D "QT_SQL_LIB" /D "QT_PLUGIN" /D "_AFXDLL" /D "_DEBUG" /D "QT_DLL" /D "_WINDLL" /D "_UNICODE" /FD /EHsc /MDd /Yu"preHeader.h" /Fp"XXX\build\XXX\Debug\XXX.pch" /Fo"CXXX\build\XXX\Debug\\" /Fd"XXX\build\XXX\Debug\vc90.pdb" /nologo /c /Zi /TP /errorReport:prompt
Qt Creator コンパイル コマンド:
cl -c -FIpreHeader.h -YupreHeader.h -Fpdebug\XXX_pch.pch -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_LARGEFILE_SUPPORT -DQT_SQL_LIB -DQT_DLL -D_UNICODE -DUNICODE -D_AFXDLL -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtNetwork" -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtGui" -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtSql" -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include" -I"..\inc" -I"GeneratedFiles" -I"GeneratedFiles\debug" -I"C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\\include" -I"C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\\include\QtCore" -I"c:\lib\boost_1_48_0" -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\ActiveQt" -I"GeneratedFiles\debug" -I"c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\mkspecs\win32-msvc2008" -Fodebug\ @XXX\Temp\qrc_resource.obj.1104.11375.jom
2 つ目の興味深い点は、Qt Creator on Linux では、同じコード、同じプロジェクトが、Visual Studio でコンパイルされたそのライブラリとリンクし、それらの外部を解決することです。