Windows控制台CMake构建MinGW Makefile项目,解决windows平台不生成Makefile文件的问题
标准的GNU Make构建系统,用于Unix和类Unix系统。,而是使用自己的构建系统,当使用 CMake 生成 NMake 构建系统时,CMake 会生成一个 `.sln` 文件和 `.vcxproj` 文件,而不是传统的 Makefile,因此NMake模式下的CMake能够生成相当好看的。然后找到你安装MinGW的目录里面的bin目录,找到mingw32-make.exe,这个文件用于编译m
CMake 可以生成多种类型的构建系统文件,比如NMake Makefiles,Borland Makefiles,MYSYS Makefiles,MinGW Makefiles,Unix Makefiles等等各类生成器(generator)选项,其中用的最多的应该是NMake和MinGW以及Unix了,我们可以在CMake的桌面程序中看到这些生成器,并设置它们。
NMake使用类似于Windows批处理脚本的语法,支持Windows上的编译器和工具链,VS使用的就是这种系统文件构建方式,因次VS的构建方式是NMake构建方式的一个子集,NMake 并不生成 Makefile,而是使用自己的构建系统,当使用 CMake 生成 NMake 构建系统时,CMake 会生成一个 `.sln` 文件和 `.vcxproj` 文件,而不是传统的 Makefile,因此NMake模式下的CMake能够生成相当好看的VS项目架构。(一般安装了VS,CMake就自动将生成器种类变为了VS类或者NMake类了)
MinGW Makefiles,用于生成适用于 MinGW 工具链的 Makefile 文件。MinGW 是一个用于 Windows 平台的开发工具集,它提供了一组类似于 Unix 的工具和库,包括 GCC 编译器和 GNU Make 构建工具(本博客默认你安装好了MinGW并且配置好了MinGW的环境变量,详细步骤可以看其他博主的博客)。
Unix Makefiles,标准的GNU Make构建系统,用于Unix和类Unix系统。它使用Makefile文件中的规则和命令来构建项目,具有广泛的灵活性和可定制性,使你能够在 Unix、Linux 或类 Unix 系统上使用 Make 工具进行项目构建。
首先准备好新建一个文件夹test3,在里面创建好main.cpp文件
#include<stdio.h>
int main()
{
printf("hello world");
getchar();
return 0;
}
然后再创建CMakeLists.txt文件
cmake_minimum_required(VERSION 3.8)
project(test3)
add_executable(test3 main.cpp)
在该目录打开控制台
用mkdir build指令创建build目录,用于存放CMake的项目文件
进入build目录
输入指令cmake .. -G "MinGW Makefiles,这个指令有两种效果,一将CMake的生成器种类变为MinGW Makefile类型,二构建项目,生成Makefile等文件。
build目录中出现了Makefile等一系列文件
然后找到你安装MinGW的目录里面的bin目录,找到mingw32-make.exe,这个文件用于编译mian.cpp文件生成对应的项目可执行文件test3.exe,记住这个文件的名称!。
回到test3项目文件夹下的build目录,打开控制台程序,输入mingw32-make(就是上面那个文件的前缀名称,有些人自己不知不觉就把这个文件名称改成了别的名称,比如make.exe,那么就应该输入make来编译main.cpp,不过非常不建议修改这个文件的名称,因为CMake的生成器是和这个文件紧密相关的,有的CMake版本安装的时候会自动与这个文件相关联,如果你只是修改了这个文件的名称,而不修改CMake内部的配置的话,之后用MinGW Makefiles编译项目的时候就可能报错!) 。
成功生成test3.exe文件
继续在控制台上输入./test3.exe成功执行main.cpp程序,输出了hello world,至此CMake配置运行MinGW Makefile项目结束。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)