[英]qt-creator and msvc can't add a (static) library
我有一個用C語言編寫的第三方(閉源)靜態庫(.lib),帶有C ++兼容的頭文件和一個非常簡單的C ++測試程序。
在Qt-creator中創建新項目后,我嘗試編譯程序並鏈接到靜態庫,但鏈接器無法解析符號:“未解析的外部符號”,錯誤LNK2019。
我使用Qt 5.3與VisualC ++ 2013 Express(我認為是MSVC12)的編譯器,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
有以下兩個文件:
我不確定在-l
標志中提供什么,所以我嘗試使用libsomelib.lib
, libsomelib
和somelib
就像在Linux中一樣,但是每個組合都不成功。
這是我第一次使用來自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並使用cl
和link
手動編譯此示例,則程序鏈接就可以了。 為此,我使用命令:
cl /MT /EHsc /c main.cpp
link /LIBPATH:C:\Users\myuser\myproject libsomelib.lib main.obj /out:test.exe
我該如何解決這個問題? 提前致謝!
不知何故,我設法使用MSVC編譯代碼。
我嘗試在Qt-Creator上重現編譯,但沒有成功; 還試圖使用Qt Add-in從VS導出qmake項目,但問題仍存在於qt creator中。 所以我放棄並繼續使用VS進行編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.