匹配MSVC符号导出名称到Qt Creator导入查找

Match MSVC symbol export names to Qt Creator import lookups

本文关键字:Qt Creator 导入 查找 MSVC 符号 匹配      更新时间:2023-10-16

我有一个库,我在MSVC2012中编译要动态链接。每个声明之前都通过宏LIBAPI加上__declspec(dllexport)。这可以很好地构建并创建一个dll +一个库,其中符号如_funcname(从dumpbin.exe检查)。

在Qt Creator(由相同的MSVC工具链支持)中,我包含用于构建库的相同头,但额外的定义将LIBAPI宏更改为__declspec(dllimport)。这是我得到链接器错误的地方,因为它正在寻找__imp_funcname。如果我将LIBAPI重新定义为零,链接器将寻找funcname(没有前面的下划线)。

我已经验证了编译链接工具链中的其他一切都正常工作,唯一的问题是这个函数装饰器不匹配。

问题是:我怎样才能在构建库时强制约定(最好是导出__imp_风格)或强制Qt找到单个下划线符号?

答案原来是我用x64版本的Qt Creator启动了这个项目,所以它使用x64工具链来进行编译和链接。创建一个全新的项目从Qt Creator x86添加复制所有的文件排序的一切