【发布时间】:2017-03-07 16:23:45
【问题描述】:
我有一个简单的 Qt-5 控制台应用程序,正在 Visual Studio 2015 中开发。我可以使用 Qt 对象,例如 QStrings,所以我确定 Qt 安装正确,但我需要将 QString 转换为 char*所以我可以将它传递给一个库函数。
我关注了这个答案:QString to char* conversion
所以我现在有如下代码:
QString myStr = "SomeString";
QByteArray ba = myStr.toLatin1();
const char *c_str = ba.data();
但是当我构建解决方案时,我收到以下错误:
Error LNK2019 unresolved external symbol "__declspec(dllimport) public: class QByteArray __thiscall QString::toLatin1(void)const & " (__imp_?toLatin1@QString@@QGBE?AVQByteArray@@XZ) referenced in function _main
问题似乎是 toLatin1() 调用,但我不知道为什么链接器找不到它,特别是因为我可以毫无问题地使用其他 QString 方法。
【问题讨论】:
-
这可能是编译器工具链和 Qt 库不匹配的情况。
-
啊。看起来我有一个为 Vis Studio 2013 编译的 Qt 版本。我会尝试更新它,看看是否有帮助。
标签: c++ visual-studio qt