日志
qt4.8.4+mingw4.6.1静态编译(备忘)
2012-12-24 22:27
以下内容根据网上内容及本人实际操作整理而成
一、准备软件 1. MinGW (C:\Qt\MinGW) http://pan.baidu.com/share/link?shareid=174269&uk=673227135 这个文件解压就可以用了。 2. ActivePerl 3. qt-win-opensource-4.8.4-mingw.exe (C:\Qt\4.8.4) 4. qtcreator2.6x 二、安装软件 1. qt-win-opensource-4.8.4-mingw.exe,提示MinGW路径时,指定到正确位置(C:\Qt\MinGW) 2. 安装Perl环境,一路Next即可 3. 安装QtCreator 三、标准库编译 1. 配置编译选项 1)打开C:\Qt\4.8.4\mkspecs\win32-g++\qmake.conf (建议先备份一下) 在QMAKE_LFLAGS后面加上 -static 并将QMAKE_LFLAGS_DLL后面的 -shared 改为 -static (注:如果用Qt4.8.3版本, 修改QT 4.8.3安装目录下mkspecs\win32-g++\qmake.CONF文件,在qmake.CONF文件中QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe 之后一行添加:QMAKE_RCC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}rcc.exe 否则,工程中有qrc文件时,会出错。4.8.4版本没有此问题) 保存并关闭 2)将C:\Qt\4.8.4\bin 下的syncqt与syncqt.bat 这两个文件删除或改名 否则在编译时会提示找不到perl环境 3)修改src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,将本行替换成return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString)); 如不修改将出现编译Webkit 时会出现 U1077错误。 2. 开始编译 静态编译,只要release版本就够了。debug版,静态编译就没有必要了,debug版随便一个工程,生成的执行文件都要上百兆甚至几百兆,调试时,很慢。那么release静态版和debug动态版如何共存呢?稍后再介绍。 打开Qt 4.8.4 Command Prompt软件,输入 configure -confirm-license -opensource -platform win32-g++ -release -static -ltcg -no-qt3support -fast -exceptions -accessibility -rtti -stl -qt-sql-sqlite -qt-sql-odbc -qt-zlib -qt-libpng -qt-libtiff -qt-libjpeg -qt-libmng -multimedia -audio-backend -script -scripttools -nomake demos -nomake examples -nomake docs -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -plugin-sql-sqlite -plugin-sql-odbc configure参数很多,可以参考它的帮助,按自己需要增减参数。 PS:这个配置仅编译release版本,如果需要同时需要静态版的Debug版本,需要把-release 改为 -debug-and-release 耐心等待一会,直到提示: Qt is now configured for building. Just run mingw32-make. To reconfigure, run mingw32-make confclean and configure. 接着输入 mingw32-make 等编译结束,如果没有什么error fail的提示,就恭喜你成功啦! 四、配置QT Creator 打开QT Creator, 菜单Tools==》Option==》Build&Run==》 Compiler选项卡: 如果没有自动检测到,手工点Add按钮,选MinGW,名称就叫MinGW吧,Compiler path:C:\Qt\MinGW\bin\g++.exe 点击Apply Qt Versions选项卡: 点Add按钮,选择C:\Qt\4.8.4\bin\qmake.exe, version name: Qt4.8.4(4.8.4) 点击Apply Kits选项卡: 点Add按钮,name: qtstatic_rel Device type: Desktop Compiler: MinGW Debuger: release版本无所谓,在debug版一定要正确选择,否则无法调试 Qt version: Qt4.8.4(4.8.4)OK,至此,就可以编译静态的qt程序了,生成的exe文件可以独立运行。不过生成的exe文件体积比较大,可以用upx压缩一下,会缩小到原来的40%左右。 |