备注:明确说明简明教程,背景就是新建一个工程文件夹且称之为test里面include文件夹放所有头文件,src放所有源文件,CMakeLists.txt直接放在test文件夹下,不引入任何其他库,例如OpenCV的一些动态链接库,就是形式较简单的纯C/C++工程,由于网上关于CMakeList编写的资料繁杂容易让小白迷失方向,本教程的目的正在于尽可能简化起到入门作用,熟悉了一阵子之后建议还是看官方的编写规范,具体自查

下面先贴出一个简单运行main.cpp打印hello的例子,网上也可以找到很多

下面依步骤说明

1.编写cmake版本要求

正如第一行的cmake_minimum_required(VERSION 3.2),可要可不要

2.编写工程名

PROJECT(xxx)这个xxx随便取了,反正后面基本用不到,但这一行必须有

3.包含头文件目录

格式就是INCLUDE_DIRECTORIES(),里面就是路径了,${PROJECT_SOURCE_DIR)意思就是工程目录test,据笔者了解这个工程目录是可以省略的,如果包含工程目录下的include文件夹直接写个include就等同于${PROJECT_SOURCE_DIR)\inlcude了,如果想包含多个文件夹,空格、换行都可以,建议像图中一样在第8行后换行

4.添加可执行源文件

为了方便首先set一下,先命名为SRC然后包含源文件,这里只包含了一个main.cpp,如果你工程还有其他需要用的源文件例如hello.cpp直接在换行添加,然后ADD_EXECUTABLE(xxx &{SRC}),这个xxx就是实际意义的工程名了或者说任务名,就是最后生成的可执行文件名一定是比如这里的hello(例如WINDOWS上为hello.exe),最后cmake,make命令编译好了之后,输入".\hello"(TABz自动补全,因为可能有后缀名,例如WINDOWS上是".\hello.exe")就会运行这个工程任务了,有时候尤其在嵌入式系统编程中不止一个任务,每个任务用到的源文件也不一样(默认所有头文件全放在一个目录里了),这个时候set(SRC1 ...)、set(SRC2 ...)...等,后面再分别ADD_EXECUTABLE(xxx &{SRC1})、ADD_EXECUTABLE(xxx &{SRC2})就可以了,注意这里xxx必须名字不相同,毕竟是不同的任务嘛

cmakelist官方教程_CMakeLists编辑简明教程相关推荐

  1. 简明python教程在线-Python简明教程

    Python简明教程在线阅读地址: https://bop.molun.net/ DocStrings 该文档字符串所约定的是一串多行字符串,其中第一行以某一大写字母开始,以句号结束.第二行为空行,后 ...

  2. C语言简明教程,C语言简明教程

    C语言是一种结构化的计算机程序设计语言,具有使用灵活.表达能力强,兼具高级语言和低级语言双重功能等特点,是各大院校计算机程序设计入门课程的*语言之一.本书以应用性为中心,以培养程序设计思想和程序设计能 ...

  3. JSP入门教程:JSP简明教程

    一. 什么是JSP JSP(JavaServer Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种 动态 网页技术标准,其网址为http://www.javasof ...

  4. python seaborn教程_Seaborn绘图简明教程

    Seaborn 是 Python 的数据可视化工具之一,它其实是在 Matplotlib 的基础上进行了更高级的 API 封装.Seaborn 可视为 Matplotlib 的补充,而不是替代,使用 ...

  5. EaselJS简明教程2-动画

    系列教程目录 EaselJS简明教程1-绘图 EaselJS简明教程2-动画 EaselJS简明教程2动画,动画是将静止的画面变为动态的艺术,由静止到动态的实现,主要依靠人眼的视觉残留效应. 动画可以 ...

  6. CGIC简明教程(转摘)

    CGIC简明教程 本系列的目的是演示如何使用C语言的CGI库"CGIC"完成Web开发的各种要求. *********************************     基础 ...

  7. Markdown 简明教程

    Markdown 简明教程 1. 标题 为了获得上面的 "1. 标题", 在 Markdown 编辑器里输入: # 1. 标题 "#" 后最好加个空格.除此之外 ...

  8. MySQL全文索引应用简明教程

    MySQL全文索引应用简明教程 本文从以下几个方面介绍下MySQL全文索引的基础知识: MySQL全文索引的几个注意事项 全文索引的语法 几种搜索类型的简介 几种搜索类型的实例 全文索引的几个注意事项 ...

  9. Unity DOTS简明教程

    什么是DOTS 首先,先来了解下什么是DOTS? DOTS是Data-Oriented-Tech-Stack,官方中文翻译是:多线程式数据导向型技术堆栈. 它主要由三部分组成: 任务系统 实体组件系统 ...

最新文章

  1. html靶心制作,用PS单色填充制作一个靶心
  2. bootrom启动流程【转】
  3. python 文件获取绝对路径
  4. php联想输入,自动联想搜索提示功能
  5. python字典遍历取值_Python中字典的使用
  6. ASP.NET Core微服务(七)——【docker部署linux上线】(RDS+API接口测试部分)
  7. Android ListView分页,动态添加数据
  8. rails3系统架构
  9. CF1598E-Staircases【计数】
  10. python的django项目中怎么添加app_django下如何创建多个app并设置urls
  11. 今天研究 Client本来是关联的Expression接口,笔记记录一下。
  12. 百年古董电影秒变4K高清、60FPS,AI插值,还能着色
  13. javastring转long的方法_被JDK坑的没商量?来试试这些方法吧
  14. Shut Down(or Closing) Your Windows and Open The Unix
  15. 30种图像动画特效算法(C#多线程版)(上)
  16. Ubuntu下FileZilla的安装
  17. 程序员简历项目经验怎么写?
  18. 绘制谢尔宾斯基三角形
  19. 通过 BT 种子 info_hash 值下载种子又一法
  20. 爱加密so VMP浅析

热门文章

  1. C语言是从什么位置开始执行程序,c程序执行过程是从哪开始到哪里结束的
  2. 使用BC进行RSA加密与解密
  3. 用JAVA完成1000以内素数的判断
  4. eyou老系统。。。
  5. MySQL,刷题之对视图操作,题+代码!!
  6. android软键盘弹出底部有黑色闪出,vue移动端安卓软键盘弹出底部按钮顶起
  7. 不用乘号除号,算乘法除法
  8. jmeter设置参数的方法(随机,读csv等)
  9. 安卓系统管理软件_完美解锁版,软件爱好者的福利!
  10. C语言 struct <结构体类型名> 结构体变量名