如何配置一个绿色化的 Qt for Windows 开发环境(有.bat脚本,亲测好用) good
安装 QtCreator for Windows 其实是很简单的,不过,我一向讨厌什么软件都得弄个安装程序,我希望我所安装的这个 Qt 可以是绿色的、便携的,如果无法实现,至少让这个 Qt 可以在新系统下只经过极少的配置就可以使用。
Qt 的安装其实也算有些"绿色"了,它不会乱写你的系统,大部分东西都在它自己的安装目录里了。然而,Qt 有个很恶心的地方,安装时,它不仅把安装路径写进配置文件,还把路径信息 硬编码 到二进制文件!这使得 Qt 很难实现完全意义上的 "绿色化" 或者 "便携化"。不过,还是有些技巧可以使得它尽量 "绿色化"。
安装
从 http://qt-project.org/downloads 下载 Qt,比如,qt-opensource-windows-x86-mingw48_opengl-5.2.1.exe。 规划好安装的目录,我的目标是 C:\Qt,不过,实际上我是在其它盘建立了一个 Qt 目录,然后使用 MKLINK ( Win7 以下版本请用 Junction ) 在 C 盘建立一个名为 Qt 的目录链接。比如:
<pre> mkdir D:\Qt mklink /J C:\Qt D:\Qt </pre> 之后运行 Qt 的安装文件,安装目录设为 C:\Qt,其它按提示进行。我下载的是那个带 MinGW 版本的,安装时我选择了 MinGW 组件(在 Tools 选择项下)。 ## 修改 安装完成后,我们对 Qt 做些小手术。 - 修改 C:\Qt\5.2.1\mingw48_32\bin\qtenv2.bat 这个文件设定了 PATH 等变量,我们稍作修改,使它与具体的盘符无关: <pre> @echo off echo Setting up environment for Qt usage... cd /D %~dp0.. set QTDIR=%cd% set PATH=%QTDIR%\bin;%~d0\Qt\Tools\mingw48_32\bin;%PATH% </pre> - 复制 msvcp100.dll 和 msvcr100.dll 将 msvcp100.dll 和 msvcr100.dll 复制到 C:\Qt\Tools\QtCreator\bin\ 目录下。因为我安装的是 32 位的 Qt,因此这两个 dll 文件也必须是 32 位版本的。可以在 Windows 的子目录中找到它们。 - 创建启动文件,指定配置文件夹 在 C:\Qt 目录下创建一个批处理文件 QtCreator.bat,用以自定义配置文件夹: <pre> @echo off start %~d0\Qt\Tools\QtCreator\bin\qtcreator.exe -settingspath %~d0\Qt\Tools\QtCreator\settings </pre>
使用和配置
本机使用当然没问题,我的目标是将 Qt 复制到其它系统中,或是放在移动硬盘里,这个 Qt 可以在其它系统中正常运行,即,实现便携化。我有两种办法可以达成这一目标:
一、使用目录符号链接
这种办法最简单,在其它系统中使用 MKLINK 建立一个链接,该链接的路径与上述的安装路径名相同,但让它指向实际的 Qt 目录,比如: <code>mklink /J C:\Qt U:\Qt</code> 这样,就可以正常调用 C:\Qt\QtCreator.bat 了,不需要其它配置。不再需要 Qt 的时候,删除该链接即可。
二、配置构建和运行环境
如果不用链接,这个 Qt 也是可以用的,只需要在启动 QtCreator 之后进行一些配置,参考以下步骤:
- 创建 qt.conf 在与 qmake 相同的目录(C:\Qt\5.2.1\mingw48_32\bin\)下,创建一文本文件,名为 qt.conf,内容如下: <pre> [Paths] Prefix = C:/Qt/5.2.1/mingw48_32 </pre> 根据自己的情况,对该文件中的路径进行调整,注意路径分隔符使用的是 UNIX 样式的正斜杠。
- 配置 Qt Versions 菜单路径: Tools / Options / Build & Run / Qt Versions,在此处添加 qmake 的路径。
- 配置 Compilers 菜单路径: Tools / Options / Build & Run / Compilers,在这里添加编译器的路径。我用的是 MinGW 版本,所以在这里添加 g++ 的路径。
- 配置 Debuggers 菜单路径: Tools / Options / Build & Run / Debuggers,此处添加调试器路径,我这里是 gdb 的路径。
- 配置构建套件 (Kits) 菜单路径: Tools / Options / Build & Run / Kits,此处添加 Kit,并依次选择正确的 Compiler, Debugger 和 Qt Version。
完成这些步骤,Qt 应该就可以正常使用了。
qt.conf 的作用及自动生成
前面已经提到过 qt.conf,这里深入探讨下该文件的作用。Qt 在编译时将安装路径 硬编码 到了库文件中,这非常恶心!可以使用 qmake 的 -query 参数查看 Qt 的安装路径:
qmake -query
QT_INSTALL_PREFIX:C:\Qt\5.2.1\mingw48_32
QT_INSTALL_ARCHDATA:C:\Qt\5.2.1\mingw48_32
QT_INSTALL_DATA:C:\Qt\5.2.1\mingw48_32\
QT_INSTALL_DOCS:C:\Qt\5.2.1\mingw48_32\doc
QT_INSTALL_HEADERS:C:\Qt\5.2.1\mingw48_32\include
QT_INSTALL_LIBS:C:\Qt\5.2.1\mingw48_32\lib
QT_INSTALL_LIBEXECS:C:\Qt\5.2.1\mingw48_32\libexec
QT_INSTALL_BINS:C:\Qt\5.2.1\mingw48_32\bin
QT_INSTALL_TESTS:C:\Qt\5.2.1\mingw48_32\tests
QT_INSTALL_PLUGINS:C:\Qt\5.2.1\mingw48_32\plugins
QT_INSTALL_IMPORTS:C:\Qt\5.2.1\mingw48_32\imports
QT_INSTALL_QML:C:\Qt\5.2.1\mingw48_32\qml
QT_INSTALL_TRANSLATIONS:C:\Qt\5.2.1\mingw48_32\translations
QT_INSTALL_EXAMPLES:C:\Qt\5.2.1\mingw48_32\examples
QMAKE_SPEC:win32-g++
QMAKE_XSPEC:win32-g++
QMAKE_VERSION:3.0 QT_VERSION:5.2.1
Qt 的这一点实在恶心,幸运的是,通过 qt.conf 文件,那些 硬编码 的路径是可以被覆盖的。qt.conf 应与 qmake 放置在同一个目录下,在指定正确的路径前缀(Prefix)后,还可以分别配置 Translations, Plugins, Examples 等子目录的名称。一般情况下,只配置 Prefix 就够了。 可以通过一个批处理文件来创建 qt.conf。在与 qmake 相同的目录(C:\Qt\5.2.1\mingw48_32\bin)下,创建一个名为 qt.conf.bat 的批处理文件,内容如下:
<pre> @echo off cd /D %~dp0.. set QTDIR=%cd% cd bin echo [Paths] > qt.conf echo Prefix = %QTDIR:\=/% >> qt.conf </pre> 你还可以在 QtCreator.bat 启动时做些检查并调用 qt.conf.bat,自动生成 qt.conf。另外,你可以把 %QTDIR%\bin 加到系统的 PATH 中,这样其它软件就可以找到 qmake 等工具。
现在,我们就可以得到一个几近绿色的 Qt 开发工具了。就个人而言,我觉得在 C 盘使用目录链接最为简单,因为那不需要其它配置。
参考
- Qt 官方网站
- How to create portable Qt developing environment? 这篇文章讲解了如何制作一个便携化的 5.0.1 版本的 Qt 开发环境,很详细。然而,按照那些步骤,我在 5.2.1 版本的 Qt 上并没能成功实施。
--
- Copyright © 2014 Chen Zhiqiang. 转载-保持署名-相同方式共享 | Creative Commons BY-SA 4.0
- 原文:http://my.oschina.net/chenzhiqiang/blog/210451
https://my.oschina.net/chenzhiqiang/blog/210451
qt.conf.bat (好用):
http://www.xaazg.com/445460554.html
如何配置一个绿色化的 Qt for Windows 开发环境(有.bat脚本,亲测好用) good的更多相关文章
- Qt For Android 开发环境配置
想了想,还是再写一篇关于Qt for Android开发环境配置的教程. 准备:Java jdk,Android sdk,Android adb,Android ndk,Android ant,Qt ...
- (二)react-native开发系列之windows开发环境配置
之前写了react-native在mac上得环境搭建,但是如果只开发android的话,只要用windows系统就可以了,下面就来说下react-native的windows开发环境配置. 1.下载配 ...
- Qt for Android开发环境搭建及测试过程记录
最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- Qt的IDE开发环境(KDevelop,MonKey Studio,QDevlop,Dev-cpp,Cobras,Edyuk)
讲到Qt的IDE开发环境,本人一直在Windows下使用VC6.0 + Qt4.3.1开发程序.但转到Linux下,使用Fedora中自带的KDevelop + Qt4.3.1开发程序. 最近一直做Q ...
- (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序
配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一. 需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclip ...
- QT树莓派交叉编译开发环境搭建
QT树莓派交叉编译开发环境搭建 - JerryZone <Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2> <Qt for Em ...
- 【转】cocos2d-x windows开发环境配置
声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交 ...
- Laravel for Windows 开发环境配置
本文为CSDN Choris 原创,转载请事先征得作者同意,以示尊重! 原文:http://blog.csdn.net/choris/article/details/50215835 Laravel配 ...
随机推荐
- NSNull 和 nil 的判断
情况1. 等于Null if ([_content isEqual:[NSNull null]] ) { //等于Null } 情况2. 等于nil if (_content==nil || [_c ...
- radio选择事件 onchange事件 onclick事件
单选框按钮(radio)选择事件怎么设置呢? 既可以在radio标签里设置onclick事件实现,也可以设置它的onchange事件实现,效果一样,代码如下: <input id="r ...
- 新一代Xamarin
新一代Xamarin竟然可以将.NET代码原生编译成:Jar包供Java原生调用.swift类库.obj-c类库.C++类库 供目标平台传统代码直接调用 之前和很多朋友聊到Xamarin觉得确实不错, ...
- Linux 在主要的搜索命令和视图的信息
查找命令和硬件信息查看的日常系统管理.最常见的维护操作. 继 Linux 基本查找命令做一个简单的比较.并列出了一些硬件信息经常使用的视图命令. man 经常使用选项 -k 知道功能.不知道名称 -f ...
- MATLAB使用入门
作者:朱金灿 来源:http://blog.csdn.net/clever101 初步学习了MATLAB的使用,发现MATLAB是一个很好的算法仿真工具.MATLAB也是一门语言,是否会使用这门语言编 ...
- .net remoting 使用事件
原文:.net remoting 使用事件 在RPC如果需要使用事件,相对是比较难的.本文告诉大家如何在 .net remoting 使用事件. 目录 使用 Channel 序列化 开发建议 修复异常 ...
- WinFrom - 打开一个窗体关闭另一个窗体
在写Winform程序的时候,经常会遇到“打开一个新的窗体然后关闭本窗体”之类的问题.最常见的就是登陆界面和主窗体了.而最常见的处理方法就是表单判断正确后 new MainForm().Show(); ...
- java多线程模拟生产者消费者问题,公司面试常常问的题。。。
package com.cn.test3; //java多线程模拟生产者消费者问题 //ProducerConsumer是主类,Producer生产者,Consumer消费者,Product产品 // ...
- Linux学习(1)vi编辑器的常用命令
今天对Linux中的vi编辑器进行了学习,对其中的常用命令进行总结: 数字 0 或^:光标移到行首 $ :光标移到行尾 H :光标移到屏幕的首行 L ...
- 在WPF中制作正圆形公章
原文:在WPF中制作正圆形公章 之前,我利用C#与GDI+程序制作过正圆形公章(利用C#制作公章 ,C#制作公章[续])并将它集成到一个小软件中(个性印章及公章的画法及实现),今天我们来探讨一下WPF ...