用Stlport作为标准库编译Qt
因为直接下载的Qt SDK是不支持“将wchar_t 视为内置类型”的,所以下载一份源码自己配置后编译,就是这个过程让我这个周末都搭在这上了,主要是想用Stlport作为标准库来编译,大费周折...
首先设置环境变量INCLUDE和LIB,分别将%STLPORT%/stlport和%STLPORT%/lib放在第一位。
找到%MSVC9.0%/Common7/Tools/vsvars32.bat,这个批处理文件实际上被“Visual Studio 2008 命令提示”调用来设置nmake,cl等路径和VC标准库的路径,用文本编辑器打开:
其中两行:
@set INCLUDE=%MSVCDir%\VC\ATLMFC\INCLUDE;%MSVCDir%\VC\INCLUDE;%INCLUDE%;
@set LIB=%MSVCDir%\VC\ATLMFC\LIB;%MSVCDir%\VC\LIB;%LIB%
改为:
@set INCLUDE=%INCLUDE%;%MSVCDir%\VC\ATLMFC\INCLUDE;%MSVCDir%\VC\INCLUDE
@set LIB=%LIB%;%MSVCDir%\ATLMFC\LIB;%MSVCDir%\VC\LIB
这样,在“Visual Studio 2008 命令提示”中就会使用Stlport而不是VC的标准库了。
下载Qt源码、解压,因为我用的是VS2008,修改配置文件%QTDIR%/mkspecs/win32-msvc2008/qmake.conf;去掉-Zc:wchar_t-。
进入“Visual Studio 2008 命令提示”,进入%QTDIR%,执行configure命令,如下:
configure -platform win32-msvc2008 -debug -D _STLP_DEBUG
成功后输入nmake install,即开始编译Qt的debug版本,编译过程大概要持续一个小时,nmake执行完成后,再次执行configure命令,如下:
configure -platform win32-msvc2008 -release
成功后输入nmake install,即开始编译Qt的release版本。
如果用VC标准库或者用Stlport但是不会用到stlportstld*.dll或stlportstld*lib版本的话(Boost好像一定是调用stld的版本...),完全可以-debug-and-release一次性的生成makefile,然后调用nmake。
configure命令有很多选项,可以根据自己的需要调整编译的库。