CMake学习(一)
CMake学习(一)
1、简介

CMake是一个强大的软件构建系统,可以用简单的语句来描述所有平台的安装(编译过程)
可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档
2、构建基础项目
最基础的 CMake 项目是由单个源代码文件构建的可执行文件
对于这种简单的需求,我们所需要用到的仅仅是一个名为CMakeLists.txt的文件以及三条命令
cmake_minimum_required()
任何项目最顶层的CMakeLists.txt文件必须以cmake_minimum_required()命令开头,用来指定最小支持的CMake版本
这将建立策略设置,并确保随后编写的CMake配置能够在兼容的CMake版本下执行
project()
如果想要启动一个项目,那么就使用project()来设置项目的名称
每个项目都需要调用该命令,并且应在 make_minimum_required() 之后尽快调用
除此以外,该命令还可用于指定其他项目级信息,如语言或版本号
add_executable()
add_executable() 命令告诉 CMake 使用指定的源代码文件创建一个可执行文件
2.1、文件配置
直接创建一个目录cmake_demos,里面只放两个文件,一个是源代码文件main.cpp,另一个是CMake的配置文件CMakeLists.txt

main.cpp文件中是简单的C++代码
#include<iostream>
int main()
{
std::cout << "Hello, CMake!" << std::endl;
}
而CMakeLists.txt依照以上内容进行一些项目配置
# 指定最低支持的CMake版本
cmake_minimum_required(VERSION 3.10)
# 设置项目名称
project(Beginner)
# 将指定源文件编译成可执行文件
add_executable(App main.cpp)
简单看下我们的配置,首先,声明了支持的CMake版本最低支持到3.10,因此低于该版本的CMake无法执行构建任务
后面紧接着声明了项目名称,此时项目名称会被存储到PROJECT_NAME变量当中,如果当前是顶层的CMakeLists.txt,还会存储到CMAKE_PROJECT_NAME变量中
最后一句则是表示根据当前目录下的main.cpp源文件生成名为App的可执行文件
2.2、构建执行
理解了配置的含义,接下来开始正式进行项目的构建吧~~
首先,在当前目录创建一个build目录,之后构建的文件会放到这里面

然后打开终端,导航到build目录下

执行cmake ..,意思是对上级目录里的内容进行项目配置,生成一个本地的构建系统

此时,build目录下会多出一大堆东西

然后,是真正的构建环节,根据配置对项目进行编译链接,执行cmake --build .命令,基于当前目录生成的内容进行构建,并生成可执行文件

此时,可执行文件会出现在Debug目录下

执行App.exe,正是main.cpp里面我们编写的功能

此时,一个最小型的CMake项目就已经构建完成了
CMake学习(一)的更多相关文章
- CMake学习(1)---简单程序与库
cmake是linux平台下重要的工具,可以方便的组织makefile.之前一直在windows平台下进行软件开发,在vs2010的IDE里,只要一点run程序就能跑出结果.但是程序的编译并没有那么简 ...
- cmake学习笔记(五)
在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西.但靠这些知识还是不能看懂PySide使 ...
- cmake 学习笔记(三)
转自:http://blog.csdn.net/dbzhang800/article/details/6329314 接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cma ...
- cmake 学习笔记(二)
在 Cmake学习笔记一 中通过一串小例子简单学习了cmake 的使用方式. 这次应该简单看看语法和常用的命令了. 简单的语法 注释 # 我是注释 命令语法 COMMAND(参数1 参数2 ...) ...
- CMake学习
CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用. 作者:AlphaGL.版权所有,欢迎保留原文链接进行转载 :) 本文目录如下: 1.CMake介绍 2.CMake安装与使用 2 ...
- cmake 学习笔记(三) (转)
接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cmake 的使用. 学习一下cmake的 finder. finder是神马东西? 当编译一个需要使用第三方库的软件时,我 ...
- CMake学习笔记四:usb_cam的CMakeLists解析
最近在学习cmake,在完整看了<cmake实践>一书后,跟着书上例程敲了跑了一遍,也写了几篇相关读书笔记,算是勉强基本入门了.所以找了usb_cam软件包的CMakeLists.txt来 ...
- cmake学习资料收集
CMake 学习笔记 : https://www.jianshu.com/p/c417e4ab8b30
- cmake 学习笔记(六)
希望这是现阶段阻碍阅读shiboken和PySide源码的涉及cmake的最后一个障碍 ^ _^ 学习 cmake 的单元测试部分 ctest. 简单使用 最简单的使用ctest的方法,就是在 CMa ...
- cmake 学习笔记(四)
接前面的一二三,学习一下 CMakeCache.txt 相关的东西. CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). ...
随机推荐
- TDSQL数据库考试实操题
第一题: 演练二 物理备份(5分) 答: 第二题:2. 演练一 请根据给定的演练方案,进行相关演练,并按如下要求提交截图 主备切换(5分) 答: 第三题:3. 演练一 请根据给定的演练方案,进行相关演 ...
- iOS 如何保持线程一直在运转
1.简单的可以想到,写一个while循环 while (TRUE) { } 但是这种方式存在缺陷,将导致CPU占用100%,两个核. p.p1 { margin: 0; font: 12px &quo ...
- ABC351
我多久没更新这个系列了啊 E 把格子分成两类,每一类之间的坐标均可互相走到. 然后将这里面的点都旋转 \(45\) 度,于是这个问题就被转换成曼哈顿距离的问题了. 我们可以把 \(x\) 和 \(y\ ...
- WIN10 家庭版 罗技G hub 安装提示不兼容当前操作系统解决方法
WIN10 家庭版 罗技G hub 安装提示不兼容当前操作系统解决方法 解决方法: 下载Onboard Memory Manager就可以. --
- 使用edge浏览器时,怎么让alt+tab不切换他的子标签页而只在程序间切换?
使用搜索按钮(WIN+Q),搜索"多任务设置",在弹出的窗口中看到"alt+tab"相关设置.选择"仅打开的窗口",ok搞定.
- work13
任务要求: 1.建立一个企鹅类,企鹅有名字(可以自由添加属性)2.把多个企鹅的信息添加到集合中3.查看企鹅的数量4.遍历输出所有企鹅的信息5.删除集合中索引值是2的企鹅的元素 任务描述: 定义一个老鼠 ...
- 性能分析: 快速定位SQL问题
在数据库性能调优的实践中,SQL性能分析是至关重要的一环.一个执行效率低下的SQL语句可能会导致整个系统的性能瓶颈. 为了快速定位并解决这些问题,我们需要对SQL进行性能分析.本文将介绍一些常用的方法 ...
- raksmart服务器部署SSL报错:ERR_CERT_COMMON_NAME_INVALID
背景:raksmart服务器 下篇 部署项目 SSL报错:ERR_CERT_COMMON_NAME_INVALID 安装certbot sudo apt update sudo apt install ...
- mysql删除主键索引,删除索引语法
mysql删除主键索引,删除索引语法 ### Incorrect table definition; there can be only one auto column and it must be ...
- 【iOS】Class对构造简洁代码很有帮助
(这到底取的是什么标题啊) 首先先看这段代码(有删减) @property (nonatomic, copy)NSMutableArray <NSMutableArray *>*datas ...