最近项目要用qt,由于初学没有经验,遇到些小问题经常没什么头绪,也查不到解决方法,刚刚还由于低端错误耽误了群里一位朋友的时间。决定之后若是遇到相似小问题就记录下来,也方便初学者少走弯路了。html
首先,qt动态编译发布程序通常是在Qtcreater中编译出release版本并运行后,在生成的release版本文件夹中取出exe。单独运行exe时会报错缺乏dll,出现这个问题直接在qt库的文件夹中搜索提示的dll,放入exe所在的文件夹便可。c++
我遇到的(0xc000007b)问题也出在这个阶段,也是太粗心了。windows
报错(0xc000007b)的可能解决方法:ui
① 许多dll应当取自Qt5.4.0\5.4\msvc2013_64\bin目录下,而在Qt5.4.0\Tools\QtCreator\bin中也有许多同名的dll,直接搜索文件时Qt5.4.0\Tools\QtCreator\bin中的dll每每先蹦出来,若是将这些dll放到exe文件夹中,就会报错“应用程序没法正常启动(0xc000007b)”。碰到这种状况真是无解了,彻底没有线索……因此若是出现这个问题,先确认下所拷贝dll的来源是否正确,qt程序对dll的要求是比较高的。url
推荐使用一款软件Process Explorer来查询exe所依赖的dll有哪些以及具体地址在哪里,防止犯错。spa
在软件中进行以下设置:.net
以后打开Qtcreater,编译程序并运行,在Process Explorer中会出现exe的进程,鼠标选中后可在下方查看其所依赖的dll及其位置。通常在系统盘中的dll能够无论,主要看PATH位于Qt文件夹中的dll,那些有不少每每就是exe所须要的dll。指针
② qt5发布程序对于dll的放置也有一些要求和变化,在网上见到有人出现0xc000007b问题是由于qwindows.dll未放入。这里转发 derryzhang 的博文http://blog.csdn.net/derryzhang/article/details/17002193,讲解得很是详细。orm
由此,最后dll放置结构应是如此:htm
截张个人(gdal111.dll为第三方的,可忽略):
③ 在某些论坛有人称是程序中存在指针越界的状况(编译能够运行怎么会出现这个状况,不解……),若是以上方法都不能解决问题,可尝试以此为思路。
在发布程序时若是遇到其余问题可参考 江湖么名 的这篇博文:http://www.cnblogs.com/mmix2009/p/3536825.html
对其余问题也有很详细的概括。