【问题标题】:Static linking in Qt --> link errors in VS 2008Qt 中的静态链接 --> VS 2008 中的链接错误
【发布时间】:2011-02-11 22:24:20
【问题描述】:

今天我致力于在 Qt 中进行静态链接。我使用了Qt4 with Visual Studio and static C runtime 文章。第三步花了很长时间。完成后,我在 VS 2008 中打开了我的项目,创建了 Build->Clean Solution 并尝试使用 Release。不幸的是,我收到了链接错误:

警告 LNK4098:默认库“libcmt.lib” 与其他库的使用冲突;采用 /NODEFAULTLIB:库

错误 LNK2019:未解决的外部 符号“私有:静态结构 QString::Data QString::shared_null" (?shared_null@QString@@0UData@1@A) 在函数“公共: __thiscall QString::QString(void)" (??0QString@@QAE@XZ)

错误 LNK2019:未解决的外部 符号“私有:静态结构 QByteArray::数据 QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A) 在函数“公共: __thiscall QByteArray::QByteArray(void)" (??0QByteArray@@QAE@XZ)

错误 LNK2001:无法解析的外部符号 “私有:静态结构 QByteArray::数据 QByteArray::shared_null" (?shared_null@QByteArray@@0UData@1@A)

错误 LNK2001: 未解析的外部符号“公共: 静态结构 QMetaObject 常量 QDialog::staticMetaObject" (?staticMetaObject@QDialog@@2UQMetaObject@@B)

错误 LNK2001: 未解析的外部符号“公共: 静态结构 QMetaObject 常量 QDialog::staticMetaObject" (?staticMetaObject@QDialog@@2UQMetaObject@@B)

错误 LNK2001: 未解析的外部符号“公共: 静态结构 QMetaObject 常量 QDialog::staticMetaObject" (?staticMetaObject@QDialog@@2UQMetaObject@@B)

错误 LNK2019:函数 _WinMain@16 中引用的未解析外部符号“public: static enum QSysInfo::WinVersion const QSysInfo::WindowsVersion”(?WindowsVersion@QSysInfo@@2W4WinVersion@1@B)

我做错了什么?请帮助解决这个问题。

【问题讨论】:

    标签: visual-studio-2008 qt static linker-errors


    【解决方案1】:

    您能否发布用于配置和构建 Qt 的命令行?您在构建 Qt 时是否收到任何错误或主要警告?我建议不要更改 .conf 文件中的任何内容,除非您确定自己在做什么。你正在做的事情真的不需要它。我还建议下载 Windows 源代码分发的新副本,或者如果您仍然有存档,则进行新的解压缩,以确保您没有任何可能不正确的先前版本的剩余文件删除。然后,进行配置和 nmake。

    【讨论】:

      【解决方案2】:

      确保在重新编译 Qt 后在自己的 Qt 项目上重新运行 qmake。项目中的构建标志也需要更新。

      【讨论】:

        【解决方案3】:

        这些说明适用于 VS2005。您收到的警告是针对 lib 多线程静态 C 运行时库的。就个人而言,我不会在 qmake.conf 中将这些值从 -MD 更改为 -MT 和 -MDd 更改为 MTd。我会让他们保持原样。无论如何,如果您使用的是 Visual Studio 解决方案,则必须转到 C++ 编译器选项并将这些 lib 设置更改为 MT 和 MTd。

        【讨论】:

        • 尝试在项目设置中设置 -MtD 并重建。错误仍然存​​在。还尝试生成 *.pro 文件并构建。有 270 多个链接错误。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多