最近重做了一台机器的系统,在上面安装了VS2010,VS2008,结果无法使用命令行重新编译QT,总是报无法找到windows.h,但使用vs2008创建QT项目并编译运行都是正常的.后来卸载了vs2010并修复vs2008,还是不行.没办法直接还原系统,只安装vs2008,QT编译正常了.从网上查找无法找到windows.h单元的原因,说是windows SDK路径混乱了,那应该是我同时安装了vs2010 C++和vs2008 C++导致的吧,以前的机器上vs2010只选择安装了C#是没问题的.下面记录一下安装编译的过程吧.
安装VS2008
这个过程不做详述了.
安装编译QT
从qt.nokia.com上下载QT的vs2008 opensource版本,下载到本地后,双击安装即可.推荐使用默认路径,可调整盘符.注意路径中不要有空格.安装好了,在环境变量中添加QTDIR,值为QT的安装目录,如D:\QT\4.82,在path中添加D:\QT\4.8.2\bin\.启动vs2008,工具-->选项-->项目和解决方案-->vc++目录,在可执行文件路径中添加$(QTDIR)\bin,包含文件路径中添加$(QTDIR)\include,$(QTDIR)\src,$(QTDIR)\include\QT,$(QTDIR)\include\QTCore,$(QTDIR)\include\QTGui,引用文件路径中添加$(QTDIR)\lib,库文件路径中添加$(QTDIR)\lib,源文件路径中添加$(QTDIR)\src.注意这些路径是安装QT的时候有安装程序自动设置的,如果没有这些路径,请手动补全.
设置完毕后,点击开始-->程序-->Microsoft Visual Studio 2008-->Visual Studio Tools-->Visual Studio 2008 命令提示,进入到dos命令行界面,使用cd命令切换到QT的安装目录D:\QT\4.8.2,输入configure.exe -platform win32-msvc2008 -debug-and-release,大约三四十分钟配置完毕,输入nmake编译程序.
安装编译Boost
首先从网上下载boost包,我是从网上下载的1.49.0版本,而且里面已经有了bjam.exe及其源码.编译命令直接到网上找一个批处理文件,为了方便这里粘贴出bat文件的内容:
rem 创建者:黄志丹 great3779@sina.com 20120301
rem @echo off
rem 先编译bjam
start bootstrap.bat
rem 等待一分钟待bjam编译完成(如果电脑性能过差,可以设置等待时间更长一些)
SET SLEEP=ping 127.0.0.1 -n
%SLEEP% 60 > nul
rem 利用bjam编译boost库
rem 在此,我们编译vs2008和vs2010下的x86及x64共4类boost库文件
rem 建立库文件夹
rem vs2008 win32库文件夹
md stage\lib\win32\vs9_0\
rem vs2008 x64库文件夹
md stage\lib\x64\vs9_0\
rem vs2010 win32库文件夹
md stage\lib\win32\vs10_0\
rem vs2010 x64库文件夹
md stage\lib\x64\vs10_0\
rem ******************************************************************
rem 先删除lib下所有文件(不删除文件夹)
del stage\lib\*.* /Q
rem 编译vs2008 win32库文件
# bjam --toolset=msvc-9.0 architecture=x86 --with-system --with-thread --with-date_time --with-filesystem --with-serialization
bjam --toolset=msvc-9.0 --build-type=complete stage
rem 拷贝至\stage\lib\win32\vs9_0
copy stage\lib\*.* stage\lib\win32\vs9_0\*.* /Y
rem ##################################################################
rem ******************************************************************
rem 先删除lib下所有文件(不删除文件夹)
del stage\lib\*.* /Q
rem boost_1_49_0共有21个库需要编译使用,分别是chrono, date_time, exception, filesystem, graph, graph_parallel, iostreams, locale, math,
rem mpi, program_options, python, random, regex, serialization, signals, system, test, thread, timer, wave。
rem 我仅选用了自己常用的几个做以上编译示例,其他使用者可以根据自己的需求选择编译。全部编译boost大概需要1个小时以上(视机器性能)
rem 全部编译boost的命令如下:bjam --toolset=msvc-9.0 --build-type=complete stage
里面的命令可根据需要进行调整.编译的时候直接将bat文件拷贝到boost的目录下,如D:\boost1490,修改名称为build.bat,双击即可.等几分钟后编译完毕,打开vs2008-->工具-->选项-->项目和解决方案-->vc++目录,在包含文件路径中添加D:\boost1490,在库文件路径中添加D:\boost1490\stage\lib\win32\vs9_0,D:\boost1490\libs\regex\build\vc90(这是boost的正则表达式库,默认没有编译,需要时要自己编译,在设置其lib文件路径).
安装编译OpenCV
见 http://blog.csdn.net/moc062066/article/details/6626528
注意这里做如下调整:再按照上面的网址方法编译opencv后,设置vs2008环境路径时需要调整为:包含文件中添加的路径改为:D:\OpenCV230\build\include,库文件中添加路径该为:D:\OpenCV230\build\x86\vc9\lib.另外环境变量中在path中添加的路径为:D:\OpenCV230\build\x86\vc9\bin.
设置好后编写测试程序即可正常运行.