前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VS2013_QT5.4_静态编译问题_已经解决

VS2013_QT5.4_静态编译问题_已经解决

作者头像
用户3519280
发布2023-07-06 14:37:39
3600
发布2023-07-06 14:37:39
举报
文章被收录于专栏:c++ 学习分享c++ 学习分享

VS2013_QT5.4_静态编译问题_已经解决

经过一个艰苦的奋斗,终于把VS2013和qt5.4 静态编译问题搞定了。

首先,感谢 wwkaven 的一步一步静态编译的图文教程

http://blog.csdn.net/wwkaven/article/details/37668859

我按照上面的步骤编译成功了qt-everywhere-opensource-src-5.4.0-alpha.zip

直接使用QT creator来创建一个静态项目是完全可以的。

但是在使用VS2013新建一个QT项目的时候,出现了以下错误提示,现在我列出我的解决方法,至于为什么这么解决,最后会给出。

在使用VS2013新建qt项目并进行编译的时候,提示错误

1>ClCompile: 1>  configsettingview.cpp 1>  moc_configsettingview.cpp 1>  main.cpp 1>  正在生成代码... 1>  qrc_configsettingview.cpp 1>Qt5Cored.lib(qglobal.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项:  值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(configsettingview.obj 中) 1>Qt5Cored.lib(qobject.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项:  值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(configsettingview.obj 中) ......

于是在当前项目右键->属性->配置属性->C/C++->代码生成  里将运行库改为  多线程调试(/MTd) 

此时再编译,会出现错误如下:

1>  所有输出均为最新。 1>  configsettingview.cpp 1>  moc_configsettingview.cpp 1>  main.cpp 1>  正在生成代码... 1>  所有输出均为最新。 1>  qrc_configsettingview.cpp 1>Link: 1>     正在创建库 d:\mydocuments\visual studio 2013\Projects\ConfigSettingView\Win32\Debug\ConfigSettingView.lib 和对象 d:\mydocuments\visual studio 2013\Projects\ConfigSettingView\Win32\Debug\ConfigSettingView.exp 1>Qt5Guid.lib(qtextengine.obj) : error LNK2019: 无法解析的外部符号 _hb_font_destroy,该符号在函数 "private: int __thiscall QTextEngine::shapeTextWithHarfbuzzNG(struct QScriptItem const &,unsigned short const *,int,class QFontEngine *,class QVector<unsigned int> const &,bool)const " (?shapeTextWithHarfbuzzNG@QTextEngine@@ABEHABUQScriptItem@@PBGHPAVQFontEngine@@ABV?$QVector@I@@_N@Z) 中被引用 1>Qt5Guid.lib(qharfbuzzng.obj) : error LNK2001: 无法解析的外部符号 _hb_font_destroy .....

解决方法是:项目右键->属性->配置属性->链接器->输入  里将附加依赖项

改为 

$(QTDIR)\lib\qtmaind.lib;$(QTDIR)\lib\Qt5Widgetsd.lib;$(QTDIR)\plugins\platforms\qwindowsd.lib;winspool.lib;shlwapi.lib;rpcrt4.lib;$(QTDIR)\lib\Qt5PlatformSupportd.lib;$(QTDIR)\plugins\imageformats\qddsd.lib;$(QTDIR)\plugins\imageformats\qicnsd.lib;$(QTDIR)\plugins\imageformats\qicod.lib;$(QTDIR)\plugins\imageformats\qjp2d.lib;$(QTDIR)\plugins\imageformats\qmngd.lib;$(QTDIR)\plugins\imageformats\qtgad.lib;$(QTDIR)\plugins\imageformats\qtiffd.lib;$(QTDIR)\plugins\imageformats\qwbmpd.lib;$(QTDIR)\plugins\imageformats\qwebpd.lib;$(QTDIR)\lib\Qt5Guid.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;glu32.lib;opengl32.lib;gdi32.lib;$(QTDIR)\lib\qtharfbuzzngd.lib;$(QTDIR)\lib\Qt5Cored.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;mpr.lib;%(AdditionalDependencies)

再次编译,出现的提示错误如下:

File: kernel\qguiapplication.cpp

Line: 1033

This application failed to start because it could not find or load the Qt platform plugin "windows".

Reinstalling the application may fix this problem.

于是在 main.cpp 里添加

#include <QtPlugin>

Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)

再次编译,OK~

可以愉快的玩耍了

图片不知道怎么上传,看文字吧,本来想做图文版的

至于我为什么这么配置~ 

用Qt Creator新建一个5.4静态版本的Qt 项目,然后用VS2013导入,再查看项目属性,改一下就OK了。

至于最后一步,上官网查资料就好。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • VS2013_QT5.4_静态编译问题_已经解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档