在Windows环境下使用MinGW编译Qt 4.8.6
1、修改环境变量工具推荐:Rapid Environment Editor。官网:http://www.rapidee.com/
修改前请先备份当前的环境变量。然后:
(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,软件来自Qt官网:http://download.qt-project.org/development_releases/prebuilt/mingw_32/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z
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 = .. ",如此一来,任意路径有效。
7、参考文献
Qt在各平台上的搭建qt-everywhere
http://my.oschina.net/crucian/blog/223107
用mingw静态编译Qt4.8.2和Qt5.1.1
http://blog.csdn.net/markl22222/article/details/20734085
QT编译./configure参数的详细解释
http://www.cppblog.com/lauer3912/articles/136423.html
QT5.1编译后的安装目录问题
http://www.qtcn.org/bbs/read-htm-tid-54625-fpage-6.html
http://blog.csdn.net/libaineu2004/article/details/24620709
在Windows环境下使用MinGW编译Qt 4.8.6的更多相关文章
- Windows环境下使用VS2005编译OpenSSL
如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- MinGW在Windows环境下配合命令提示符运行C/C++
http://jingyan.baidu.com/article/4853e1e5787d6b1909f726f8.html 在电脑中配置MinGW环境. 具体参见我的另一篇分享经验——MinGW在W ...
- Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk
在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-j ...
- windows环境下protobuf的java操作{编译,序列化,反序列化}
google protocol buffer的使用和原理 概况: Protocol Buffers(也就是protobuf)是谷歌的语言中立的.平台中立的.可扩展的用于序列化结构化的数据: windo ...
- 编译实战 | 手摸手教你在Windows环境下运行Redis6.x
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra. 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看 ...
- Windows环境下的安装gcc
Windows具有良好的界面和丰富的工具,所以目前linux开发的流程是,windows下完成编码工作,linux上实现编译工作. 为了提高工作效率,有必要在windows环境下搭建一套gcc,gdb ...
- python MySQLdb在windows环境下的快速安装
python MySQLdb在windows环境下的快速安装.问题解决方式 使用python访问mysql,需要一系列安装 linux下MySQLdb安装见 Python MySQLdb在Linux下 ...
- windows 环境下安装python MySQLdb
使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.NET/wklken/arti ...
随机推荐
- java的抽象类
现实世界中,人们表征世界时,会把现实世界中的很多类具有相同特征的事物归为一个抽象类.比如水果是许多植物果实的总称,我们可以定义一个苹果类.定义一个西瓜类,可以实例化一个苹果对象,可以实例化一个西瓜对象 ...
- ubuntu apache fastcgi 虚拟主机安装
1 cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.domain.com 这里www.domain.c ...
- Android应用开发基础篇(2)-----Notification(状态栏通知)
一.概述 Notification这个部件的功能是在状态栏里显示消息提醒,比如有未读的短信或者是未接的电话,那么状态栏里都会有显示,更或者是从某个应用(比如QQ,酷我音乐等等)里按Home键 ...
- j2se总结
j2se总结 经过一周多的时间完成了j2se基础的学习,个人感觉最大的收获不是对j2se的语法了解了多少,而是对面向对象的认识再一次加深了.面向对象,让类和对象成为一切. 下边是对j2se的一部分的总 ...
- 解决Fragment中使用ViewPager时,ViewPager里的Fragment错位和空白问题
这两天开始在改OSChina的开源android客户端,打算用Fragment来分离Main这个Activity里的功能.用Fragment嵌套ViewPager+Fragment的时候发现问题. 红 ...
- SQL Server索引进阶:第六级,标签
原文地址: Stairway to SQL Server Indexes: Level 6,Bookmarks 本文是SQL Server索引进阶系列(Stairway to SQL Server I ...
- [学习笔记]HTML5之canvas
虐了一下午的canvas 先撸了一个七巧板 <!doctype html> <html> <head> <meta charset="utf-8&q ...
- python函数cmp()
cmp(x, y) 中文说明:比较两个对象x和y,如果x < y ,返回负数:x == y, 返回0:x > y,返回正数. 版本:该函数只有在python2中可用,而且在python2所 ...
- Json.Net系列教程 4.Linq To JSON
原文 Json.Net系列教程 4.Linq To JSON 更改历史 2013-05-31 添加一个FAQ 一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSO ...
- android 播放assets文件里视频文件的问题
今天做了一个功能,就是播放项目工程里面的视频文件,不是播放SD卡视频文件. 因为之前写webview加载assets文件夹时,是这样写的: webView = new WebView(this); w ...