网站首页 > 技术文章 正文
前言
CMake是C++的必学部分,本篇文章从安装环境开始,通过使用CMake构建一个最简单的cpp项目和g++直接编译作对比了解CMake的构建过程,为接下来深入学习CMake打下基础。
一、系统环境
- 操作系统:Windows7 sp1 专业版
- 构建工具:CMake 3.24.1 下载地址:https://cmake.org/download/
安装结束后,如果不想手动设置环境变量,可以勾选"Add CMake to the system PATH for all users":
当在cmd中输入cmake -version显示如下内容即为安装成功:
- 编译工具:MinGW 下载地址:https://github.com/niXman/mingw-builds-binaries/releases/
下载后解压,然后将其中的mingw64文件夹拷贝至C盘,接着将“C:\mingw64\bin”设置为系统环境变量,最后建议重启或注销确保设置生效。
当在cmd中输入g++ --version显示如下内容即为安装成功:
二、直接编译和构建工具对比
新建文件 main.cc:
#include <iostream>
int main()
{
std::cout << "Hello World 你好!" << std::endl;
return 0;
}
(一)通过g++直接编译
在cmd中输入:g++ -o D:\main.exe D:\main.cpp
这儿省略中间步骤,通过g++直接生成mian.exe。
(二)通过CMake构建编译
1、在main.cpp同级目录新建CMakeLists.txt,然后在期中写入如下内容
#设置cmake的最低版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.24)
#设置项目名称
PROJECT(FirstProgram)
#设置可执行文件名称和需要的源文件
ADD_EXECUTABLE(hello.exe main.cpp)
2、在cmd中输入:cmake -G "MinGW Makefiles" ..
当显示“'make' 不是内部或外部命令,也不是可运行的程序或批处理文件。”解决方法:进入“C:\mingw32\bin”文件夹中,将“mingw32-make.exe”可执行文件重命名为cmake。(不建议重命名会导致报错:CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". )
3、在cmd中输入:make
当显示“'make' 不是内部或外部命令,也不是可运行的程序或批处理文件。”解决方法:进入“C:\mingw64\bin”文件夹中,将“mingw32-make.exe”复制后重命名为“make.exe”。
猜你喜欢
- 2025-07-03 Windows下VSCode配置C++环境
- 2025-07-03 vs code 搭建c/c++开发环境(mingw64)
- 2025-07-03 冬天保有奶油肌的秘诀?含有保湿润泽成分的 PRIMER 推荐
- 2025-07-03 minGW安装记(缺gdb)
- 2025-07-03 MinGW与Cygwin傻傻分不清楚
- 2025-07-03 CLion+Mingw开发环境的安装与配置
- 最近发表
-
- Qt编程进阶(63):Qt Quick高级控件的使用
- Qt编程进阶(47):QML鼠标事件处理(qt编程难不难)
- 使用Xamarin和Visual Studio开发Android可穿戴设备应用
- Qt使用教程:创建Qt Quick应用程序(三)
- QML性能优化 | 常见界面元素优化(qml布局自适应大小)
- Qt使用教程:创建移动应用程序(二)
- Qt Quick 多媒体开发播放音乐和视频
- Qt使用教程:创建Qt Quick UI表单(三)
- 如何将 Qt 3D 渲染与 Qt Quick 2D 元素结合创建太阳系行星元素?
- QML控件:TextInput, TextField, TextEdit, TextArea用法及自定义
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- nfs (25)
- springbatch (28)
- oracle数据库备份 (25)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- c 数组 (33)
- pascal语言教程 (23)
- ppt 教程 (35)
- java7 (24)
- 自适应网站制作 (32)
- server服务自动停止 (25)
- 超链接去掉下划线 (34)
- 什么是堆栈 (22)
- map entry (25)
- ubuntu装qq (25)
- outputstreamwriter (26)
- fill_parent (22)