设置了一天,这静态编译也总算是虐出来了。。。Qt 的静态编译简直不要太麻烦啊。。。
感谢这位大神提供的方法
http://zerooverture.com/tutorials/qt/737.html
工具下载:
http://pan.baidu.com/s/1hq2Cff2
一、环境配置
我目前用的系统是Windows 7 64bit,请注意安装好以下软件,以及配置好环境变量:
Visual Studio 2013
python
perl
安装好以上软件 请用cmd测试下 python和perl,如果提示不是内部或外部命令,也不是可运行的程序或批处理文件之类的那说明没配置好环境变量,请在你的环境变量path中添加 F:\Qt\5.4\msvc2013_64\bin;F:\Python33;F:\MinGW\mingw64\bin
(根据自己的安装路径进行更改)
配置环境变量:计算机->属性->高级系统设置->环境变量->系统变量->Path
1.MinGw:
Path后加
;F:\MinGW\mingw64\bin
2. Python:
Path 后加:
;F:\Python33
;F:\Qt\5.4\msvc2013_64\bin
3. Perl:
新建perl变量并加路径
F:\Perl\bin
cmd测试:
gcc –v
python
perl -v
二、准备工作
http://download.qt-project.org/development_releases/qt/5.4/5.4.0-beta/qt-opensource-windows-x86-msvc2013_64_opengl-5.4.0-beta.exe(安装QT根据自己的VS版本)
这个很简单 就和安装一般的程序一样一步步安装即可,那么下面说就是编译一个 静态库存放到 安装好的Qt中以便使用
下载
将其解压 到F:\qt-everywhere-opensource-src-5.4.0-beta(自己看着办即可)
下面的修改很重要
根据你的VS版本进入Qt相应的文件夹修改qmake.conf,我是win32-msvc2013
F:\Qt\5.4\msvc2013_64\mkspecs\win32-msvc2013\qmake.conf
1 2 3 4 5 6 7 8 |
QMAKE_CFLAGS_RELEASE = -O2 -MD -Zc:strictStrings QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi -Zc:strictStrings QMAKE_CFLAGS_DEBUG = -Zi -MDd //将以上改为 QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings QMAKE_CFLAGS_DEBUG = -Zi -MTd //即将MD(动态)改为MT(静态) |
准备完成下面即开始编译
三、编译静态库并安装
下面打开VS2013的开发人员命令提示工具,从开始菜单中自己找。或者看看下面路径里有没
F:\VS2013\Common7\Tools\Shortcuts\VS2013开发人员命令提示
转至Qt下载解压的目录
F:\Qt\5.4\msvc2013_64\mkspecs\win32-msvc2013\qmake.conf
执行configure 注意检查:
1 |
configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix " F:\Qt\5.4\static-vs2013" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit |
其中 “F:\Qt\5.4\static-vs2013″ 是最后静态库安装的位置我安装的就是最开始 安装QT的地方 嘛 这个可以随便复制的
这一步如果提示 找不到configure.exe命令是因为下载的zip问题 执行下面的方法即可
1.新建一个.gitignore文件
如何创建一个没有名字的文件??
你创建一个文件,随便什么都可以,改名如 1.txt留着备用。里面输入foo
再创建一个文本文件如do.txt,输入如下内容:
ren 1.txt .gitignore
保存后将 do.txt改为 do.bat
然后鼠标双击 do.bat
2.内容填写 foo
保存即可
3.保存到F:\qt-everywhere-opensource-src-5.4.0-beta\qtbase中
4.CMD在F:\qt-everywhere-opensource-src-5.4.0-beta目录执行 echo foo > qtbase\.gitignore
VS2013下cmd命令:
cd"F:\qt-everywhere-opensource-src-5.4.0-beta"
echo foo >qtbase\.gitignore
configure-confirm-license -opensource -platform win32-msvc2013 -debug-and-release-static -prefix "F:\Qt\5.4\static-vs2013" -qt-sql-sqlite -qt-sql-odbc-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengldesktop
-qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples-skip qtwebkit
再执行之前的configure代码即可
执行nmake:
输入nmake 回车
这一步超长,,,大概1个小时半左右,可以最小化该干嘛干嘛,我用的SSD 机械硬盘可能会更久,猜测。。
执行nmake install
nmake结束以后执行nmake install程序会把编译好的静态库安装到之前设定的目录 静态库即可使用了。
三、使用静态库
打开Qt Creator,工具->选项->构建和运行->QtVersions->添加
把刚才安装的静态库加进去 选浏览 把 F:\Qt\5.4\static-vs2013\bin\qmake.exe选进去即可 (不单是刚编译的以后如果拿到别的也可以这么添加)
选择 构建套件(Kit)选项卡 添加一个套件看下面设置 自行更改
经过上面操作 已经完成所有的编译安装,新建个项目选择 静态库的kit试试吧,最后生成的release\exe文件大概在10M以内 通过TMD压缩下 有4M左右= ,=不得不说 如果不考虑跨平台。。用C#还是不错的至少现在.net framework windows都预装了生成的exe才几百K。。。
Note:在最后一步构建kit的时候我发现有个警告,好像说是可能不兼容,不过我测试一切正常。不知道具体是什么 有遇到的或者知道的还请留言告诉下。