【问题标题】:Qt 4.8.4 giving error in debug mode compilationQt 4.8.4 在调试模式编译时出错
【发布时间】:2013-07-25 05:42:57
【问题描述】:

我已经为 Visual Studio 2010 安装了 Qt 4.8.4。
qt-win-opensource-4.8.4-vs2010.exe
http://download.qt-project.org/archive/qt/4.8/4.8.4/

Qt 项目文件:

LIBS += -lqaxserver \ -lqax 容器

在我的 Qt GUI 应用程序中,我使用 QAxobject 来访问 ms-excel。

当我在发布模式下编译我的项目时,我没有收到任何错误。 GUI 正在按预期运行。我能够使用 QAxObject 对象生成 excel 文件。

但我在进行调试构建时遇到以下 3 个错误:

找不到文件:qaxcontainer.lib(qaxbase.obj) 找不到文件:qaxcontainer.lib(qaxobject.obj) 找不到文件:qaxcontainer.lib(qaxtypes.obj)

为什么这只发生在调试版本中?我该如何解决?

编辑:----

我评论了 LIBS 并添加了 CONFIG。仍然没有更改发布模式正在编译调试正在出错。

#LIBS += -lqaxserver \
# -lqax 容器
配置 += qaxserver
CONFIG += qaxcontainer

现在我遇到了七个错误:----

AxServerd.lib(qaxtypes.obj) : error LNK2005: "class QColor __cdecl OLEColorToQColor(unsigned int)" (?OLEColorToQColor@@YA?AVQColor@@I@Z) 已经在 QAxContainerd.lib(qaxtypes.obj) 中定义
QAxServerd.lib(qaxtypes.obj) : 错误 LNK2005: "bool __cdecl QVariantToVARIANT(class QVariant const &,struct tagVARIANT &,class QByteArray const &,bool)" (?QVariantToVARIANT@@YA_NABVQVariant@@AAUtagVARIANT@@ABVQByteArray@@_N@ Z) 已经在 QAxContainerd.lib(qaxtypes.obj) 中定义
QAxServerd.lib(qaxtypes.obj) : 错误 LNK2005: "bool __cdecl QVariantToVoidStar(class QVariant const &,void *,class QByteArray const &,unsigned int)" (?QVariantToVoidStar@@YA_NABVQVariant@@PAXABVQByteArray@@I@Z)在 QAxContainerd.lib(qaxtypes.obj) 中定义
QAxServerd.lib(qaxtypes.obj) : 错误 LNK2005: "class QVariant __cdecl VARIANTToQVariant(struct tagVARIANT const &,class QByteArray const &,unsigned int)" (?VARIANTToQVariant@@YA?AVQVariant@@ABUtagVARIANT@@ABVQByteArray@@I@ Z) 已经在 QAxContainerd.lib(qaxtypes.obj) 中定义
QAxServerd.lib(qaxtypes.obj):错误 LNK2005:“void __cdecl clearVARIANT(struct tagVARIANT *)”(?clearVARIANT@@YAXPAUtagVARIANT@@@Z) 已在 QAxContainerd.lib(qaxtypes.obj) 中定义
QAxServerd.lib(qaxserver.obj):错误 LNK2019:未解析的外部符号“类 QAxFactory * __cdecl qax_instantiate(void)”(?qax_instantiate@@YAPAVQAxFactory@@XZ) 在函数“类 QAxFactory * __cdecl qAxFactory(void)”(? qAxFactory@@YAPAVQAxFactory@@XZ)
debug\geny.exe : 致命错误 LNK1120: 1 unresolved externals
    链接 /LIBPATH:"c:\Qt\4.8.4\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /MANIFEST /MANIFESTFILE:"debug\geny.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32 ' 名称='Microsoft.Windows.Common-Controls' 版本='6.0.0.0' publicKeyToken='6595b64144ccf1df' 语言='*' 处理器架构='*'" /OUT:debug\geny.exe @C:\Users\dguleria \AppData\Local\Temp\geny.exe.17776.15.jom
    C:\QtSDK\QtCreator\bin\jom.exe -f Makefile.Debug

【问题讨论】:

    标签: qt qt4.8


    【解决方案1】:

    这是因为这些库在调试版本中的名称不同。对于 Qt 库,您不应该使用 LIBS。您应该告诉 qmake 通过以下方式找出链接选项:

    配置 += qaxcontainer

    这在此处记录: http://qt-project.org/doc/qt-4.8/activeqt-container.html

    【讨论】:

    • 仍然无法在调试模式下工作.. 我已经编辑了原始帖子.. 请查看那里的错误.. 有什么建议吗?
    • @Katoch 确保在构建之前执行“干净”步骤。还要确保您的项目文件中没有硬编码任何库路径。
    • 我们唯一需要包含的是——CONFIG += qaxcontainer --- 然后它就起作用了..谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2011-01-20
    • 2013-04-13
    相关资源
    最近更新 更多