【问题标题】:QT project won't link to functions that have std::wstring as parameter.QT 项目不会链接到以 std::wstring 作为参数的函数。
【发布时间】:2011-09-23 20:42:07
【问题描述】:

我有一个 VS2010 dll 我正在尝试链接到一个 QT 项目。 我正在使用我使用 MSVC2010 构建的 QT 版本 4.7.4。 QT Creator也是使用MSVC2010编译的。

我通过包含头文件、在 pro 文件中引用 .lib 并将 .dll 放在执行文件夹中来隐式链接。

现在我只使用 dll 中一个类的函数。一些功能链接,其中一些没有。 Dependency walker 确认它们都可以正常导出。

不链接的函数将 std::wstring 或 std::wstring* 作为参数。

是否在某处重新定义了 wstring?任何想法都会有所帮助。

【问题讨论】:

  • 我读到有人成功重建 QT 并将选项“将 wchar_t 视为内置类型”设置为 false,或者将项目设置更改为不使用内置类型。我将重建 QT 保存为最后一个选项,因为它需要很长时间,但我在任何地方都找不到该项目选项。
  • 您能否更具体地了解“不会链接”,最好包含错误消息的全文。

标签: visual-studio-2010 qt visual-c++ linker


【解决方案1】:

所以对于其他遇到此问题的人,我只是想通了。

链接器中断是因为 Visual Studio 默认将 wchar_t 映射到 __wchar_t,而 QT 没有。

修复:转到项目设置 -> 配置属性 -> C/C++ -> 语言并取消选中“将 WChar_t 视为内置类型”属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 2011-08-16
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2011-08-03
    • 2019-08-25
    • 1970-01-01
    相关资源
    最近更新 更多