【问题标题】:Match MSVC symbol export names to Qt Creator import lookups将 MSVC 符号导出名称与 Qt Creator 导入查找匹配
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多