C で記述されたサード パーティ (クローズド ソース) スタティック ライブラリ (.lib) があり、C++ と互換性のあるヘッダーと非常に単純な C++ テスト プログラムがあります。
Qt-creator で新しいプロジェクトを作成した後、プログラムをコンパイルしてスタティック ライブラリにリンクしようとしましたが、リンカーはシンボルを解決できません:「未解決の外部シンボル」、エラー LNK2019。
VisualC++ 2013 Express (MSVC12 だと思います) のコンパイラで Qt 5.3 を使用しています。Qt-creator で使用される .pro ファイルは次のとおりです。
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
LIBS += -L"C:/Users/myuser/myproject" -lsomelib
SOURCES += main.cpp
HEADERS += \
somelib.h
C:\Users\myuser\myproject
次の 2 つのファイルがあると仮定します。
- libsomelib.lib
- somelib.h
フラグに何を指定すればよいかわからないので、Linux で行うように、と-l
を試しましたが、すべての組み合わせが失敗しました。libsomelib.lib
libsomelib
somelib
Qt-creator から MSVC を使用するのはこれが初めてなので (あまり経験がないわけではありません)、qt-creator が発行するリンク コマンドがよくわかりません。これには、知らないマニフェスト ファイルが含まれています。コマンドで明示的にリストされているファイルまたはライブラリはありません。
link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\myproject.exe.embed.manifest /OUT:debug\myproject.exe @C:\Users\myuser\AppData\Local\Temp\myproject.exe.4260.531.jom
qmake を使用せず、 and を使用して手動でこの例をコンパイルするcl
とlink
、プログラムは問題なくリンクすることに注意してください。これを実現するために、次のコマンドを使用します。
cl /MT /EHsc /c main.cpp
link /LIBPATH:C:\Users\myuser\myproject libsomelib.lib main.obj /out:test.exe
どうすれば修正できますか?前もって感謝します!