手把手教你使用CMake自动编译中CMakeLists.txt 怎么写

2023-05-16

背景

CMake 一直都是用别人的开源项目来编译,Makefile都是自己写。
最近看zlm源码,里面用的CMake编译,比较简洁易懂!
所以有尝试给现有项目也写个CMakeList.txt来使用cmake自动编译,跟它耍耍!

基础语法介绍

主要参考以下链接地址:
《CMakeLists.txt 语法介绍与实例演练》

  • 项目名称:
#指定项目的名称 project name 
PROJECT(AppMedia)
  • 添加头文件
include_directories(
./
include
src
include/common
)

这里有一个疑问,暂时没有到批量包含目录和N级子目录的用法。自己写的Makefile就可以随意扫描包含目录及其子目录等。

  • 源头文件
#源文件目录 source directory 
aux_source_directory(src DIR_SRCS)
  • 环境变量
#设置环境变量 set environment variable 编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol look
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手教你使用CMake自动编译中CMakeLists.txt 怎么写 的相关文章

随机推荐

  • Dubbo3.0 整合 Nacos

    首先呢 xff0c 这个项目分为provider提供者和consumer消费者 xff0c 使用的版本是dubbo3 0 7 xff0c nacos是2 0 4 xff08 注意 xff1a 要使用dubbo3 xff0c nacos的版本
  • Kafka动态启用消费者

    1 设置监听器禁止自启动 span class token class name KafkaListenerContainerFactory span span class token generics span class token p
  • Gazebo 学习笔记之构建一个Robot 1:模型目录的结构和要求

    文章目录 概述1 模型数据库存储库2 模型数据库的结构2 1 插件目录2 2 Meshes 目录2 3 Material 目录2 4 数据库配置 Database Config2 5 模型配置 Model Config2 6 模型 SDF2
  • 已解决:Android Studio 报错No IDEA annotations attached to the JDK 1.8, some issues will not be found

    今天把sdk删了 xff0c 重装 xff0c 然后打开AS后发现 No IDEA annotations attached to the JDK 1 8 some issues will not be found 的警告 项目无法运行 x
  • Android Studio配置模拟器AVD移动至其他盘

    平时我们在Android Studio中使用的模拟器 xff0c 这些模拟器会在C盘中创建模拟器镜像文件 在C Users UsersName android中 xff0c avd文件夹就是用来存放模拟器镜像文件的 xff0c 为了节省c盘
  • Python3 虚拟环境激活

    如果你正在使用Python3 xff0c 虚拟环境已经成为内置模块 xff0c 可以直接通过如下命令来创建它 xff1a python3 m venv venv 注 xff1a 这个命令不一定能够执行成功 xff0c 比如译者在Ubuntu
  • 培训机构众多,如何选择优秀嵌入式培训机构?

    为什么说选择一个优秀的 专业的嵌入式培训学校很重要 xff1f 选择优秀的嵌入式培训学校 xff0c 学习嵌入式技术 xff0c 您将可能找到一份好工作 xff0c 得到10倍 xff0c 甚至100倍价值回报 xff1b 从此你将有独立生
  • 接口防重方案设计

    幂等性原理 xff1a 前台的多次请求 xff0c 对于后台 xff0c 也是同一次请求 xff1b 通常接口设计方式 xff1a 1 前端的页面提交按钮置灰 xff0c 防止用户重复点击 xff1b 2 对前端提交的token进行校验 x
  • 微信小程序-轮播图实现

    好久不见 xff0c 今天小h来分享一下如何实现一个微信小程序的轮播图实现方式 xff1a 前提条件是具有微信开发者工具 xff0c 还有对应的开发者ID xff0c 这些基础条件我这边就直接跳过了哈 xff0c 直接进入正题 xff1a
  • 所以,到底什么是微服务?

    1 微服务是一种软件架构 xff0c 是聚焦在单一的职责和业务功能 xff0c 具有独立的进程 xff0c 能够单独运行的服务 xff0c 并且与外部服务是通过HTTP进行交互通信的服务 2 微服务比较常见的特性是 xff0c 具有单一职责
  • 关于云服务Bmob的使用方法(上)——上传数据

    关于第三方云服务平台Bmob是怎样使用的 xff1f 我们从两个方面来写 xff0c 一个是传输数据 xff0c 一个是传输文件 第一个是关于bmob传输数据的 xff0c 首先我们在官网http www bmob cn 上面注册我们自己的
  • 关于云服务Bmob的使用方法(下)——上传文件

    上一篇我们说了如何传输数据 xff0c 那么这一篇我们进阶一下 xff0c 来谈谈如何传输文件 xff0c 比如图片 关于如何在bmob上注册和申请 xff0c 上一篇已经有说明 xff0c 不懂的读者可以去看看 xff0c 然后我们直接进
  • 使用栈模拟递归的算法

    这一篇笔者要讲的是如何用栈来模拟递归 xff0c 或者说替代递归的算法 xff0c 现在我们假如要算从三角形数的叠加 xff0c 比如输入10 xff0c 输出是55 xff0c 输入是100 xff0c 输出是5050 xff0c 等等
  • 使用 catkin 的方式创建自定义的 ros 消息

    文章目录 1 写在前面2 创建自定义消息2 1 创建 ros 包2 2 创建 msg 文件2 3 修改 package xml 文件2 4 修改 CMakeLists txt 文件 3 生成 msg 代码文件 1 写在前面 消息文件是描述R
  • "我"与AI

    有人说过 xff0c 在这世界上 xff0c 一共有10种人 xff0c 一种是懂二进制的 xff0c 一种是不懂的 其实 xff0c 在不远的未来 xff0c 这个世界多了两种机器 xff0c 懂AI的 xff0c 以及不懂的 在如今的互
  • java集合篇(一)——ArrayList扩容原理

    相信大家都对ArrayList相当熟悉了 xff0c 今天笔者就对ArrayList的源码进行解读 xff0c 讲解一下对ArrayList扩容的基本原理 虽然大家都有用过 xff0c 但还是简单介绍一下吧 xff0c ArrayList实
  • 怎样快速开发一个 Dubbo 应用?

    背景 本文将以 Dubbo 为例 xff0c 介绍如何快速开发一个 Dubbo 应用 为了便于读者理解 xff1a 首先会介绍一下传统的 RMI 的基本概念 然后比较下现代的 RPC 框架与 RMI 的区别 再基于 Dubbo 提供的 AP
  • 百度历届笔试题(1)

    题目描述 牛牛和妞妞正在玩一个猜数游戏 xff0c 妞妞心里想两个不相等的正数 xff0c 把这两个正数的和y告诉牛牛 妞妞声称这两个数都不超过x xff0c 让牛牛猜这两个数是多少 牛牛每猜一次 xff0c 妞妞会告诉他猜对了还是猜错了
  • 最佳线性无偏估计BLUE

    最佳线性无偏估计BLUE 1 定义 xff1a 线性估计是参数估计最重要的一类 xff0c 应用 广泛 如果对参数x 的估计可以表示成为量测信 息的线性函数就是线性估计 而线性无偏最小方差估计称为BLUE Best Linear Unbia
  • 手把手教你使用CMake自动编译中CMakeLists.txt 怎么写

    背景 CMake 一直都是用别人的开源项目来编译 Makefile都是自己写 最近看zlm源码 里面用的CMake编译 比较简洁易懂 所以有尝试给现有项目也写个CMakeList txt来使用cmake自动编译 跟它耍耍 基础语法介绍 主要