VS2010 Pro,出于某种需求需要静态编译QT,记录下,以备查看。
我是pro版,据说express版即可,这点未亲测。
下载484的everywhere的tar.gz的源码解压(注:解压的目录和config的目录必须为同一个,我是C:\Qt\qtLib)
1. 修改\mkspecs\win32-msvc2010下的qmake.conf文件,将其中的
QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-
改为
QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t
(注意末尾的”-“号区别)
2. 找到下面的语句改成下面这样:
QMAKE_CFLAGS_RELEASE = -O2 -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi QMAKE_CFLAGS_DEBUG = -Zi -MTd
如果不改,生成的文件会隐式调用vc的动态运行库。
config的路径需要和解压的路径是同一个(我是C:\Qt\qtLib),否则死活nmake找不到文件,很坑爹。
切换到qt的解压目录,用vs的终端执行下面的命令
configure -debug-and-release -static -fast -opensource -confirm-license -no-webkit -no-script -no-scripttools -nomake examples -nomake docs -nomake demos -nomake translations && nmake
编译成功,注意不要make clean,否则build项目的时候各种warning。
用LordPE看了下,qt编译成了静态,调用vc的dll为静态库的模式。
下载qt creator,配置qt环境C:\Qt\qtLib\bin\qmake.exe即可。
******************************************************************************************************************************************************************************************************************
调试配置
需要安装windbg
自己设置符号路径,和驱动调试差不多
symsrv*symsrv.dll*C:\symbols*http://msdl.microsoft.com/download/symbols
工具,选项,调试,cdb,设置符号路径,把上面的贴进去
在构建和运行里面,选择手工设置的套件(kit),选择调试器,选择“自动检测”
重启qt creator即可。
******************************************************************************************************************************************************************************************************************
备注:带webkit的静态编译不了,具体参考http://blog.csdn.net/ztz0223/article/details/8885218,不想多说了,坑爹的
动态编译直接下载qt libraries for 2010即可,注意:在qtCreator里面添加的qmake是bin目录下的qmake,不是qmake目录下的