㈠ qt如何把debug编译成release版本
可以project->Set Active Config,选中release版本,此后,按F5或F7编译所得的结果就是release版本。
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。
至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。
如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。
Release Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译十对应用程序的速度进行优化,而Debug Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC Debug库,对速度没有优化。
㈡ QT如何生成release版本
(针对windows下的情况)一般分为两种情况:
程序不含动态链接 即运行时不用.dll文件。此时,1. 点击左侧边栏的Projects
2. 在Build Step里的qmake build configuration中选择Release,重新构建运行即可。
程序中含有动态链接(含有.dll文件)。此时,按照情况1操作后很可能无法生成.exe文件,或者生成的.exe文件,在生成的release文件夹中(如没有生成release文件夹,自己建立一个release文件夹并且从debug文件夹中拷贝.exe文件进来亦可,并且该release文件夹不是必须在当前的工程目录下)加入相应的动态链接库文件(mingwm10.dll,QtGui4.dll,libgcc_s_dw2-1.dll,QtCore4.dll以及自编写的程序所调用到的其他.dll文件,注意:.dll文件一定不要添加完全,不能有遗漏)和程序运行时需要预处理的配置文件(如没有此种预处理所必须的文件,则不必考虑)等。但是这个时候还是经常发生错误,会提示 “
无法定位程序输入点******于动态链接库
QtCore4.dll上”这种类似的错误,这种情况是由于QtCore4.dll错误导致的,在qt的安装目录下有很多种QtCore4.dll文件,编译时用的dll不是QT/bin中的dll,而用得是qt下desktop下的bin中的dll,虽然同名,但是功能不同,选择错误会导致不能运行。以上操作都做到了,此时没有意外,即使在没有安装QTcreator的机器上,该release文件夹下的.exe文件也能正常运行。
㈢ 新人求教,急.qt4.8.6无法编译
认真核对操作步骤:
1、修改环境变量工具推荐:Rapid Environment Editor。
修改前请先备份当前的环境变量。然后:
(1)检查系统变量path,删除有关mingw其他版本等信息,以免与后续的mingw32-make冲突。
(2)检查用户变量INCLUDE、LIB、PATH、MSDevDir和MSVCDir,删除有关\Microsoft Visual Studio\VC98的信息,因为它们会与后续的mingw32-make冲突,导致编译出错。
2、在电脑上安装mingw编译器,假设路径安装在C:\Qt\mingw32。将C:\Qt\mingw32\bin添加进环境变量path,打开DOS命令行输入gcc --version和g++ --version和mingw32-make --version验证编译器安装成功。我用的MinGW版本是V4.8.2,
3、解压qt-everywhere-opensource-src-4.8.6.zip并进入目录。例如:D:\qt-everywhere-opensource-src-4.8.6\
4、依次执行以下DOS命令:
(1)configure -debug-and-release -opensource -prefix "D:\Qt4.8.6" -platform win32-g++ -nomake demos -nomake examples
常见的使用选项说明:
-debug-and-release 编译debug和release版
-opensource 选择开源协议并确认
-platform win32-g++ 使用mingw编译
-prefix "D:\Qt4.8.6" 指定编译结果目录,如果未指定则默认尘链当前
-shared 创建和使用共享Qt库
-static 创建和使用静态Qt库
-nomake demos -nomake examples 不编译例程
-nomake tests 不编译tests
-skip qtwebkit 忽略qtwebkit,因为编译它特别消耗时间
-mp 使用多核优化编译
(2)mingw32-make
(3)mingw32-make install
5、编译完成后,把C:\Qt\mingw32\bin\路径下的三个文件libgcc_s_dw2-1.dll、libstdc++-6.dll和libwinpthread-1.dll拷贝到D:\qt-everywhere-opensource-src-4.8.6\bin\。另外,也请把步骤1备份的环境变量还原。
6、修改Qt安装路径
最初编搏悔译时选择的路径是D:\Qt4.8.6\派银孙。如果想将它复制到其他盘符,并且改名,例如:C:\Qt\4.8.6_MinGW。这样一来会有问题吗?是的,会有问题,因为Qt有绝对路径依赖症。改名后C:\Qt\4.8.6_MinGW\bin\的exe执行程序都会出问题,要么程序打不开,要么多国语言发生异常。用记事本打开C:\Qt\4.8.6_MinGW\bin\qmake.exe,查找关键字“qt_prfxpath”,可以看到里面含有原始的安装路径。我们不可以手动去修改qmake.exe,真正有效的解决方法是:
在C:\Qt\4.8.6_MinGW\bin\路径下创建一个qt.conf文件,内容为
[paths]
Prefix = C:/Qt/4.8.6_MinGW
请注意:qt.conf文件必须是ANSI格式,并且Prefix的斜杠风格采取的是Linux的,而非Windows,否则会失效。或者使用"Prefix = .. ",如此一来,任意路径有效。
㈣ Qt编译出release版本的xxx.exe文件,运行时出现This application failed*** 提示
搜一下:Qt编译出release版本的xxx.exe文件,运行时出现This
application
failed***
提示?
㈤ qt编译要先编译debug后才能编译release吗
不要。根据查询相关公开信息显示,在Qt中可以直接在QtCreator中举数设置编译目标为release,并进唤纯行编译。默认情况下,QtCreator会自动编译debug和release两种版本正链首的可执行文件。
㈥ 我的这个qt工程怎么没有release版本选择,请看图
因为你没有选择用release方式构建,你可以点击,左侧的项目(project)用你带的release版本构建一个新的即可
㈦ 运用qt-ros生成的qt的项目运行release版本无法找到相关文件
点击左侧工具栏的“项目”,在“构建设置”中,将“编辑构建设置”更改为"Release"。特别要注意,“概要”中的"Show build"选择框,将勾选去掉,此处主要是选择将生成的文件放置在何处。
已经生成exe之后,将exe文件单独放置在一个文件夹内。该操作是得到exe运行需要的dll文件。
进入到该软件中,且在出现的cmd界面中,先进入到exe所在的文件夹。
㈧ Qt编译出release版本的xxx.exe文件,运行时出现This application failed*** 提示
给你qt运行所需要的租让库,你参考下:
platforms/qwindows.dll 注意这个核拍platforms是一个文改型羡件夹,你拷贝整个文件夹就行
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Multimedia.dll
Qt5MultimediaWidgets.dll
Qt5Network.dll
Qt5OpenGL.dll
Qt5Positioning.dll
Qt5PrintSupport.dll
Qt5Qml.dll
Qt5Quick.dll
Qt5Sensors.dll
Qt5Sql.dll
Qt5Svg.dll
Qt5WebKit.dll
Qt5WebKitWidgets.dll
Qt5Widgets.dll
qwindows.dll
㈨ 求解,用QT creator怎么生成release版本
在Qt creator的左下角,有一个按钮(如图)。
然后点击绿色的类似于播放按钮的按钮进行编译、运行。
㈩ 用QT做的软件,debug版本正常,但是Release版本就死掉了,会是什么原因
应该是相关的动态库(Qt*.dll)存在多个版本引起的,
QT4在不同版本发布的动态库的文件名都是一样的,
比如4.1.4和4.4.3的都是QtCore4.dll,
但实际的版本不一样会出现这样的问题.如果Debug版本的程序运行没有问题,
也就说明Debug版本的动态库没有上述的版本冲突的问题,
而是Release版本的动态库存在着版本冲突.
这是因为绝大部分软件发布时只带着release版本的程序,
而不会发布debug版本的程序.最好的办法是搜索一下硬盘内有多少目录下有qt的动态库
最有可能的问题是,你本机的的其他程序用到了其他版本的qt,并将含有qt动态包的路径设置在系统的path环境变量中,debug和release时寻找qt动态包的目录遍历顺序不一致,所以debug时调用你想要的qt动态包,而release程序执行时加载了别的版本的qt动态包,建议在系统内搜一下