我有一个我在MSVC2012中编译的库,可以动态链接。通过宏__declspec(dllexport)
,每个声明前面都有LIBAPI
。这样构建正常并创建一个dll + lib,其中包含_funcname
等符号(来自使用dumpbin.exe检查)。
在Qt Creator中(由相同的MSVC工具链支持)我包含用于构建库的相同标头,但是包含将LIBAPI
宏更改为__declspec(dllimport)
的额外定义。这是我收到链接器错误的地方,因为它正在寻找__imp_funcname
。如果我将LIBAPI
重新定义为零,则链接器将代之以查找funcname
(不在前面的下划线)。
我已经验证了编译链接工具链中的所有其他工具正常工作,唯一的问题是这个函数装饰器不匹配。
问题是:如何在构建库时强制约定(最好是导出__imp_
样式)或强制Qt找到单个下划线符号?
答案 0 :(得分:0)
答案结果是我使用x64版本的Qt Creator启动了项目,所以它使用x64工具链进行编译和链接。从Qt Creator x86创建一个全新的项目,可以将所有文件复制到已排序的所有文件中