c++ - qt-creator 和 msvc 无法添加(静态)库

标签 c++ qt visual-c++ qt-creator msvc12

我有一个用 C 编写的第 3 方(闭源)静态库 (.lib),带有 C++ 兼容 header 和一个非常简单的 C++ 测试程序。

在Qt-creator中新建项目后,我尝试编译程序并链接到静态库,但是链接器无法解析符号:“Unresolved external symbol”,错误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 发出的链接命令,其中包括我不知道的 list 文件,并且- 显然 - 命令中没有明确列出任何文件或库:

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 插件从 VS 导出 qmake 项目,但问题仍然存在于 qt creator 中。所以我放弃了,继续用VS编译。

关于c++ - qt-creator 和 msvc 无法添加(静态)库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055820/

相关文章:

c++ - 32 位 x86 上的 64 位 int 算术(来自 c )

android - 如何从 Necessitas Android 应用程序中删除所有默认权限?

winapi - CryptAcquireContext——未解析的外部

c++ - 我应该总是在函数末尾调用 vector clear() 吗?

c++ - 不同 Observable 的观察者模式

c++ - Qt 解析自定义文件格式

c++ - 如何检测按下屏幕的压力?

c++ - 在不同的完整路径下用 C++ 保存文件

c++ - 如何定义返回嵌套类对象的模板类成员函数

c++ - 如何在 C++ 中将 UTF-16 代理十进制转换为 UNICODE