【发布时间】:2014-03-29 09:51:13
【问题描述】:
我有一个库,我正在 MSVC2012 中编译它以动态链接。每个声明前面都有__declspec(dllexport) 通过宏LIBAPI。这可以很好地构建并创建一个 dll + 一个 lib,其中包含 _funcname 等符号(来自使用 dumpbin.exe 检查)。
在 Qt Creator 中(由相同的 MSVC 工具链支持)我包含用于构建库的相同标头,但额外定义将 LIBAPI 宏更改为 __declspec(dllimport)。这是我得到链接器错误的地方,因为它正在寻找__imp_funcname。如果我将 LIBAPI 重新定义为空,则链接器将改为查找 funcname(前面没有下划线)。
我已经验证了编译链接工具链中的其他所有内容都可以正常工作,唯一的问题是这个函数装饰器不匹配。
然后的问题是:如何在构建库时强制约定(最好导出 __imp_ 样式)或强制 Qt 查找单个下划线符号?
【问题讨论】:
标签: c++ qt visual-c++ linker dllexport