windows下静态编译qt4 for VS2010

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目录下的

你可能感兴趣的:(windows)