簡體   English   中英

qt-creator和msvc無法添加(靜態)庫

[英]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有以下兩個文件:

  • libsomelib.lib
  • somelib.h

我不確定在-l標志中提供什么,所以我嘗試使用libsomelib.liblibsomelibsomelib就像在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並使用cllink手動編譯此示例,則程序鏈接就可以了。 為此,我使用命令:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM