在windows下使用CMake编译C++源码产生的是Visual Studio工程文件,而不是Makefiles(linux默认是这种编译文件)。现在需要在windows下使用cmake直接编译产生Makefile,继而使用make命令执行build、link等步骤形成target可执行exe文件。
1、安装minGW和CMake
2、在windows配置minGW和CMake的bin环境变量
3、修改minGW bin目录下的mingw32-make.exe为make.exe
4、创建编译文件所在的build目录(可以是其他名称)
5、指定cmake产生Makefiles文件(说明,后面是两个点号指定cmake要编译上一层目录中的源码文件):
cmake -G "MinGW Makefiles" ..
6、make
7、done
截图如下:
补充说明:
(1)可以在CMakeLists文件中指明C++的编译器
#set(CMAKE_C_FLAGS "-g -Wall -I ****\\mingw64\\include -L ***\\mingw64\\lib") #set(CMAKE_CXX_COMPILER "g++") #set(CMAKE_CXX_FLAGS "-g -Wall -I ***\\mingw64\\include -L ***\\mingw64\\lib")
(2)可以在cmake编译命令行中指明要使用minGW的make命令:
cmake -G "MinGW Makefiles" -D "CMAKE_MAKE_PROGRAM:PATH=***\\mingw64\\bin\\make.exe" ..
(3)听过Makefile可以管理工程的构建规则,可以手写(耗时耗力),所以采用cmake的CMakeLists文件编写。
通过CMakeList文件可以定制整个编译过程,可以根据本地具体环境产生合适的Makefile和工程文件。
-- over --