1

我已经为 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
配置 += qaxcontainer

现在我收到七个错误:----

AxServerd.lib(qaxtypes.obj) : 错误 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
4

1 回答 1

2

这是因为在调试版本中库的名称不同。你不应该使用LIBSQt 库。您应该告诉 qmake 通过执行以下操作找出链接选项:

配置 += qaxcontainer

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

于 2013-07-25T11:17:24.337 回答