nmake命令行编译Qt项目

Part Ⅰ

环境:

1)VS2010

目录:E:\Program Files (x86)\Microsoft Visual Studio 10.0

2)VS的Qt插件(qt-vs-addin-1.1.11-opensource.exe)

3)Qt for vs2010 (qt-win-opensource-4.8.4-vs2010.exe)

目录:E:\cpp\Qt\4.8.4

 

Part Ⅱ

1.打开VS2010中的 Visual Studio 命令提示(2010),此时就可以使用nmake了

可以看一下path,多了很多VS中的目录。

 

2.设置Qt环境变量,使之能够使用qmake。

set path=%path%;E:\cpp\Qt\4.8.4\bin"

E:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>set path=%path%;E:\cpp\Qt
\4.8.4\bin
再次查看path可以看到多了E:\cpp\Qt\4.8.4\bin

 

3.切换到项目目录

E:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>cd E:\Projects\Qt\Demo\Demo
4.使用qmake生成pro文件。

E:\Projects\Qt\Demo\Demo>qmake -project

 

如:qmake -project QT+=network

QT+=network 添加network 模块,相当于VS的Qt插件中的Qt Project Setting 里Qt modules

可以发现生成的pro文件中多了一项。

使用qmake --help  (--help,linux风格)查看帮助信息

 

5.生成makefile文件

E:\Projects\Qt\Demo\Demo>qmake Demo.pro
RCC: Warning: No resources in 'Demo.qrc'.
RCC: Warning: No resources in 'Demo.qrc'.

 

6.编译项目

E:\Projects\Qt\Demo\Demo>nmake Debug Release

nmake 默认生成Debug

..............

各种编译信息或者警告信息之后(元对象编译过程也能看见--生成moc_*.cpp文件)

最后在Debug和release目录下可找到执行文件。

nmake /? (/? windows 风格)nmake帮助信息

 

7.运行

E:\Projects\Qt\Demo\Demo>cd release

E:\Projects\Qt\Demo\Demo\release>Demo.exe

oh,so prefect!

 

 

Part Ⅲ

解决VS2010上Qt版本更新后,不能编译旧版本项目问题。

编译的时候出现:

The following error occured:
There's no Qt version assigned to this project for platform Win32. Please use the 'change Qt version' feature and choose a valid Qt version for this platform.

翻遍所有设置都没有找到设置版本的地方,索性手工改项目配置文件(只是xml文件而已)

1.修改vcxproj文件
用文本编辑器打开Demo.vcxproj,查找Qt版本号(我的是4.8.4 )

<ProjectExtensions>
<VisualStudio>
<UserProperties UicDir=".\GeneratedFiles" MocDir=".\GeneratedFiles\$(ConfigurationName)" MocOptions="" RccDir=".\GeneratedFiles" lupdateOnBuild="0" lupdateOptions="" lreleaseOptions="" QtVersion_x0020_Win32="4.8.4" />
</VisualStudio>
</ProjectExtensions>

QtVersion_x0020_Win32="4.8.4"

2.修改user文件
用文本编辑器打开Demo.user

<QTDIR>E:\cpp\Qt\4.8.4</QTDIR>

 

 

注:

qmake编译最初参考于:《C++GUI Qt4编程》p3

发于:http://blog.ownku.com/?p=152

你可能感兴趣的:(qt,nmake)