Qt+VS Makefile实现项目的顺序编译【一键编译】

Qt项目、VS编译器,很多文件的编译顺序,用IDE(QT)一个个编译过去,操作起来比较麻烦,要人为判定先后顺序,耗费时间,如果写成命令文件,只要cmd 敲个命令就能完成一系列的编译,多么方便,而且全部编译,没有遗漏,减少错误的发生。

 

Makefile文件生成的命令很简单:

qmake -o Makefile xxxxx.pro

 

windows下运行Makefile用nmake,也很简单。

nmake clean
nmake

 

但是要让这几行命令正常运行,要做的配置可不少。

 

1、'qmake' 不是内部或外部命令,也不是可运行的程序

解答:系统环境变量path添加qmake所在的路径目录,如:C:\Qt\Qt5.8.0\5.8\msvc2013\bin

 

2、'nmake' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

解答:系统环境变量path添加nmake所在的路径目录,如:C:\Program Files\Microsoft Visual Studio 12.0\VC\bin。具体看你自己的编译器安装目录,我是VS2013的安装目录。

 

3、fatal error C1083: 无法打开包括文件:“type_traits”: No such file or directory

error: C1083: 无法打开包括文件: “cstddef”: No such file or directory

fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory

解答:头文件找不到的问题,其实这个文件存在,可以找到,但是nmake找不到,解决办法是:在系统环境变量那边添加一个include的变量名,变量值如:C:\Program Files\Microsoft Visual Studio 12.0\VC\include;C:\Program Files\Windows Kits\8.1\Include;C:\Program Files\Windows Kits\8.1\Include\um;C:\Program Files\Windows Kits\8.1\Include\shared

提示什么文件找不到,就查找文件所在位置,然后把路径加入到include里头,nmake就能顺利找到了。

 

4、LINK : fatal error LNK1181: 无法打开输入文件“shell32.lib”

LINK : fatal error LNK1104: 无法打开文件“msvcprt.lib”

解答:类似上一个问题,找不到lib文件,解决方案:在系统环境变量中添加变量名lib,变量值:C:\Program Files\Windows Kits\8.1\Lib\winv6.3\um\x86;C:\Program Files\Microsoft Visual Studio 12.0\VC\lib

提示缺什么lib,先查找lib所在位置,路径加入lib,nmake就能找到了。

这里可能会遇到系统没安装WDK的情况,比如我的win8.1系统就要安装对应的8.1版本的wdk,才能加载到某些lib。

Windows Driver Kit 8.1 Update 1 https://www.microsoft.com/en-us/download/confirmation.aspx?id=42273

 

5、LINK : fatal error LNK1158: 无法运行“rc.exe

解答:系统环境变量path添加C:\Program Files\Windows Kits\8.1\bin\x86

 

6、模块计算机类型“x64”与目标计算机类型“X86”冲突。

解答:因为以上配置是32位系统的配置,所以在64位下要做一些配置的调整。否则会出现冲突。

调整:nmake的路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64

Lib的调整:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64

 

备注:每一次修改系统环境变量之后,要重新打开一个cmd窗口,不然设置的内容无法生效。

 

如此设置之后,QT项目中*.pro都可以按照顺序生成Makefile并且nmake生成dll或者exe,这样重新编译一个大项目,只要一个命令,不需要反复操作,节省时间,提升效率,减少错误。

 

如此,也感受到了命令行的魅力,自动操作666

 

 

 

新建文本文件,重命名成xxx.bat

写入如下等命令,注意路径问题。


cd ../aaa
qmake -o Makefile aaa.pro
nmake clean
nmake

cd ../bbb
qmake -o Makefile bbb.pro
nmake clean
nmake

 

打开CMD,cd到bat路径,输入xxx,回车,即可运行编译项目。

 

 

你可能感兴趣的:(Qt)