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,回车,即可运行编译项目。