用mingw静态编译Qt4.8.2和Qt5.1.1(需要修改不少源码)
2017-02-07 21:34
501 查看
因为一些乱七八糟的原因,我需要用mingw静态编译Qt4.8.2和Qt5.1.1。
经历了一天的折腾之后,自觉编译一下Qt还是件颇为麻烦的事情,故将过程略作总结,以备不时之需。
首先,在编译之前,我需要下载mingw、qt-everywhere-opensource-src-4.8.2和qt-everywhere-opensource-src-5.1.1。
然后,准备开始编译了,当然先得把压缩包解压到一个合适的地方。
我这里的路径是"C:\Qt"下面。
解压完毕后,先试着编译Qt4.8.2。
configure命令为:
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
configure -confirm-license -opensource -prefix "C:\Qt\Qt4.8.2" -debug-and-release -static -platform win32-g++ -nomake demos -nomake examples -nomake tests -fast
使用的选项说明:
在控制台下进入"C:\Qt\qt-everywhere-opensource-src-4.8.2",运行configure。
在编译之前,需要改一个地方:
找到"qt-everywhere-opensource-src-4.8.2\src\3rdparty\webkit\Source\WebCore\platform"下的DefaultLocalizationStrategy.cpp文件,第327行:
[cpp] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
return WEB_UI_STRING("Look Up “<selection>”", ...);
把它改成这样:(注意引号)
[cpp] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
return WEB_UI_STRING("Look Up <selection>", ...);
否则编译会报错。
然后运行mingw32-make开始编译。
编译完毕后,找到"qt-everywhere-opensource-src-4.8.2\src\winmain"下的Makefile.Debug文件,第215行:
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
@$(CHK_DIR_EXISTS) c:$(INSTALL_ROOT)/Qt/Qt4.8.2/lib/pkgconfig $(MKDIR) c:$(INSTALL_ROOT)/Qt/Qt4.8.2/lib/pkgconfig
改成:(注意$(CHK_DIR_EXISTS)和目录的斜杠)
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
@if not exist c:$(INSTALL_ROOT)\Qt\Qt4.8.2\lib\pkgconfig $(MKDIR) c:$(INSTALL_ROOT)\Qt\Qt4.8.2\lib\pkgconfig
改完后用同样的方式修改Makefile.Release。
最后mingw32-make install,大功告成。
接下来编译Qt5.1.1。
首先还是configure命令:
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
configure -confirm-license -opensource -prefix "C:\Qt\Qt5.1.1" -debug-and-release -static -platform win32-g++ -opengl desktop -no-angle -nomake examples -nomake tests -skip qtwebkit
使用的选项说明:(重复的就不写了)
在控制台下进入"C:\Qt\qt-everywhere-opensource-src-5.1.1\qtbase",运行configure。
之后依次mingw32-make、mingw32-make install,大功告成。
参考文章:
1. 编译QT4.8.2完成之后,mingw32-make install时出错的解决方案
2. VS2010+QT5.1.0静态库编译
3. QTCN开发网>Qt安装与发布>[提问]mingw32编译QT5
4. Problems when building/installing Qt5.1.0x64 under Win7x64 VS2010SP1 for different source and installation folders
5. Qt 5.1.0 RC MinGW32 静态编译 Static Build
6. [编译] QT编译./configure参数的详细解释[新手充电必读]
7. Qt 4.8.2 VS2008 集成环境搭建过程中编译错误的解决办法
http://blog.csdn.net/markl22222/article/details/20734085
经历了一天的折腾之后,自觉编译一下Qt还是件颇为麻烦的事情,故将过程略作总结,以备不时之需。
首先,在编译之前,我需要下载mingw、qt-everywhere-opensource-src-4.8.2和qt-everywhere-opensource-src-5.1.1。
然后,准备开始编译了,当然先得把压缩包解压到一个合适的地方。
我这里的路径是"C:\Qt"下面。
解压完毕后,先试着编译Qt4.8.2。
configure命令为:
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
configure -confirm-license -opensource -prefix "C:\Qt\Qt4.8.2" -debug-and-release -static -platform win32-g++ -nomake demos -nomake examples -nomake tests -fast
使用的选项说明:
-confirm-license -opensource | 选择开源协议并确认 |
-prefix "C:\Qt\Qt4.8.2" | 指定安装目录为"C:\Qt\Qt4.8.2" |
-debug-and-release | 编译debug和release版 |
-static | 编译成静态库 |
-platform win32-g++ | 使用mingw编译 |
-nomake demos -nomake examples -nomake tests | 不编译这些不需要的东西 |
-fast | 快速编译 |
在编译之前,需要改一个地方:
找到"qt-everywhere-opensource-src-4.8.2\src\3rdparty\webkit\Source\WebCore\platform"下的DefaultLocalizationStrategy.cpp文件,第327行:
[cpp] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
return WEB_UI_STRING("Look Up “<selection>”", ...);
把它改成这样:(注意引号)
[cpp] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
return WEB_UI_STRING("Look Up <selection>", ...);
否则编译会报错。
然后运行mingw32-make开始编译。
编译完毕后,找到"qt-everywhere-opensource-src-4.8.2\src\winmain"下的Makefile.Debug文件,第215行:
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
@$(CHK_DIR_EXISTS) c:$(INSTALL_ROOT)/Qt/Qt4.8.2/lib/pkgconfig $(MKDIR) c:$(INSTALL_ROOT)/Qt/Qt4.8.2/lib/pkgconfig
改成:(注意$(CHK_DIR_EXISTS)和目录的斜杠)
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
@if not exist c:$(INSTALL_ROOT)\Qt\Qt4.8.2\lib\pkgconfig $(MKDIR) c:$(INSTALL_ROOT)\Qt\Qt4.8.2\lib\pkgconfig
改完后用同样的方式修改Makefile.Release。
最后mingw32-make install,大功告成。
接下来编译Qt5.1.1。
首先还是configure命令:
[plain] view plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
configure -confirm-license -opensource -prefix "C:\Qt\Qt5.1.1" -debug-and-release -static -platform win32-g++ -opengl desktop -no-angle -nomake examples -nomake tests -skip qtwebkit
使用的选项说明:(重复的就不写了)
-opengl desktop | 选择desktop的opengl,不这样玩编译会挂 |
-no-angle | 不使用angle,否则编译会挂 |
-nomake examples -nomake tests | 不编译这些东西。其中examples,参加编译的话install会挂 |
-skip qtwebkit | 不编译qtwebkit,否则很麻烦 |
之后依次mingw32-make、mingw32-make install,大功告成。
参考文章:
1. 编译QT4.8.2完成之后,mingw32-make install时出错的解决方案
2. VS2010+QT5.1.0静态库编译
3. QTCN开发网>Qt安装与发布>[提问]mingw32编译QT5
4. Problems when building/installing Qt5.1.0x64 under Win7x64 VS2010SP1 for different source and installation folders
5. Qt 5.1.0 RC MinGW32 静态编译 Static Build
6. [编译] QT编译./configure参数的详细解释[新手充电必读]
7. Qt 4.8.2 VS2008 集成环境搭建过程中编译错误的解决办法
http://blog.csdn.net/markl22222/article/details/20734085
相关文章推荐
- 用mingw静态编译Qt4.8.2和Qt5.1.1
- 用mingw静态编译Qt4.8.2和Qt5.1.1
- 用mingw4.8.2 静态编译QT5.3.1
- 用mingw4.8.2 静态编译QT5.3.1
- 用mingw4.8.2 静态编译QT5.3.1
- Qt5.2.0 MinGW480 release静态版编译结果、过程及QtCreator配置分享(realfan的编译方法)(configure -h可以显示帮助)(静态编译mysql插件,需要做一些其它工作,机器上要有mysql)(不编译qtwebkit,就不用安装ActivePerl了)(用到 QMediaPlayer的编译办法)
- Windows下MinGW编译静态Qt I 之实践
- [转载]QT+MinGW在windows中静态编译程序
- VS2012中使用编译的Qt-5.1.1静态库开发程序
- 在Windows 10下使用MinGW静态编译Qt 5.9.1的详细过程(Ver 17.0819)
- 编译openssl-0.9.8a,用mingw,需要修改一下makefile
- ipp sample cmake编译uic、application、picnic时需要Qt4(已安装Qt4.8.5)cmakelist.txt修改
- 解决VS2012(update3)静态编译的Qt5.1.1程序无法运行的问题
- Openssl - Static libraries (w32, mingw) 以及对Qt静态编译时的设置
- MinGW编译Qt较好的一些文章链接(静态或动态)
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(很不错,有六张插图说明,修改qmake.conf里的MD参数等)good
- qt 5.1.1静态编译
- Qt 4.6.2在VS2005,VS2008,MinGW环境下的静态编译
- Win7 64bit + VS2010 SP1 + Qt 5.1.1静态库编译
- Linux下编译静态MinGW环境,编译windows平台Qt程序(使用MXE)