windows下使用make构建github上工程的经历

参考: https://blog.csdn.net/cqltbe131421/article/details/53315876
参考:https://doc.qt.io/qt-5/qmake-platform-notes.html
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

最近遇到一个github上的工程,最上层有Makefile,工程里面包含的有qt的工程,在windows下编译.

构建过程

过程中用到make/qmake/nmake, 算是比较绕的了。
使用make来build最上层的Makefile
a. 调用qmake对Qt工程文件.pro进行构建,逐个生成pro的Makefile(windows下的nmake格式的Makefile)
b. 使用nmake对pro工程生成出的Makefile进行执行,依次生成目标文件

关于qmake

经过这次编译的过程,了解到qmake的功能是比较不错的,在windows下,即可以生成Makefile,也可以用来生成VS的project文件。
在执行命令的目录生成makefile: qmake -r xxx.pro
在执行命令的目录生成vcxproj文件: qmake -tp vc -r xxx.pro
(注意:qmake命令生成的文件在执行命令当前目录;所以:如果要生成到某个目录中的话,需要提前cd到目录中,再执行qmake命令)
The qmake tool helps simplify the build process for development projects across different platforms. It automates the generation of Makefiles so that only a few lines of information are needed to create each Makefile.
qmake can also generate projects for Microsoft Visual studio without requiring the developer to change the project file.

工具配置

  1. make
    程序从官网下载, 并配置到path路径上去
    http://gnuwin32.sourceforge.net/packages/make.htm

  2. qmake
    (下面使用qt5.9的msvc2015_64版本,仅供参考)
    qmake使用本地安装过的的,配置到path路径上去
    for mscv2015版本64位的版本 Qt5.9.0\5.9\msvc2015_64

  3. nmake
    (下面使用的本地路径,仅供参考)
    nmake/link/cl使用vs2015带的nmake,配置到path路径上去
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\nmake.exe
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link.exe
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe
    rc使用Windows Kits中的,配置到path路径
    C:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
    另外需要配置INCLUDE环境变量,指向包含的头文件
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include;
    C:\Program Files (x86)\Windows Kits\8.1\Include\shared;
    C:\Program Files (x86)\Windows Kits\8.1\Include\um;
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
    需要配置LIB环境变量,指向包含的LIB文件
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64;
    C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64;
    C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64

上面步骤设置完毕后,新建cmd窗口,进入工程目录,执行make

附加问题

另外遇到两个问题,解决的方法如下:

  1. make报错: 命令语法不正确(mkdir报错)
原始值:mkdir -p $(dir $@) && \
修改后:mkdir "$(dir $@)" && \

经验:mkdir未识别-p命令,另外dir获得的路径串加引号后识别。

  1. nmake报错:NMAKE : fatal error U1073: 不知道如何生成“;”
原始值:cd $$(dir $$(value $(1)_MAKE)) && $(MAKE);
修改后:cd $$(dir $$(value $(1)_MAKE)) && $(MAKE) /f Makefile

经验:nmake后不能有多余的分号字符,另外nmake需要指定Makefile

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

你可能感兴趣的:(C++,make)