vs2008静态编译Qt4.8.6
1、编译准备
源码版本
qt-opensource-windows-x86-vs2008-4.8.6.exe
下载地址:
http://mirrors.hust.edu.cn/qtproject/official_releases/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe
vs插件(创建工程向导)
qt-vs-addin-1.1.11-opensource.exe
下载地址:
http://mirrors.hustunique.com/qt/official_releases/vsaddin/qt-vs-addin-1.1.11-opensource.exe
2、更改qmake.conf文件
打开文件D:\Qt\4.8.6\mkspecs\win32-msvc2008\qmake.conf
更改MD为MT,更改MDd为MTd
即:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
改为:
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi –MTd
3.配置环境变量
变量名:PATH
变量值:D:\Qt\4.8.6
变量名:QTDIR
变量值:D:\Qt\4.8.6
变量名:QMAKESPEC
变量值:win32-msvc2008
4.设置配置
在开始菜单打开Visual Studio 2008 Command Prompt
cd到源代码所在文件夹(即D:\Qt\4.8.6)
入以下命令然后回车。(更多关于configure命令可以,输入configure –help查看)
configure -platform win32-msvc2008 -debug-and-release -static -fast -qt-sql-odbc -qt-sql-sqlite
选o,回车(opensourse方式编译)
选y,回车(接受linsence许可)
5.编译链接
输入nmake回车然后开始编译,要等很久喔。要2个小时以上。编译后有40GB。注意磁盘空间。
6.清理中间文件
在编译过程中如果没有产生错误,则可以把编译时产生的中间文件清理掉。输入nmake clean回车
7.静态编译 Demo
工程配置c/c++ ->code Generation:Runtime Library
Debug Multi-threaded Debug(/MTd)
Release Multi-threaded Debug(/MT)
这时编译还会有连接错误,晕。
连接错误:
error LNK2001: unresolved external symbol "public: static struct QMetaObject const QDialog::staticMetaObject" (?staticMetaObject@QDialog@@2UQMetaObject@@B)
工程配置Linker->Input:Additional Dependencies
qtmain.lib
QtCore4.lib
QtGui4.lib
改成
kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib qtmaind.lib QtCored.lib QtGuid.lib
这样就OK啦。
一个简单的Hello world程序有5.82M。框架确实占了很多。
[喝小酒的网摘]http://blog.const.net.cn/a/12332.htm