Cmake的使用
第一步:安装Cmake

双击点开即可,无脑下一步。
第二步:编写一个简单的Cmake项目
CMakeLists.txt文件
# 设置最低的 CMake 版本要求
cmake_minimum_required(VERSION 3.10)# 设置项目名称
project(MyProject)# 添加可执行文件
add_executable(my_executable main.cpp)
CMakeLists.txt是CMake构建系统的配置文件,用于定义项目的构建规则和依赖关系。它通常位于项目的根目录中,包含了一系列的指令和设置,用于指导CMake如何构建项目。
以下是CMakeLists.txt文件中一些关键部分的详细讲解:
- cmake_minimum_required: 指定项目所需的最低CMake版本。这确保了只有满足最低版本的CMake才能正确构建项目。
- project: 定义项目的名称和版本。这个命令会设置一些变量,如
PROJECT_NAME和PROJECT_VERSION,这些变量可以在后续的CMakeLists.txt中使用。 - add_executable/add_library: 分别用于添加可执行文件和库文件的目标。需要指定目标名称和源文件列表。例如,
add_executable(myapp main.cpp)会创建一个名为myapp的可执行文件,其源文件为main.cpp。 - target_link_libraries: 用于指定目标(可执行文件或库)所依赖的其他库。例如,
target_link_libraries(myapp mylib)表示myapp依赖于mylib库。 - include_directories: 用于添加头文件搜索路径。这样,在编译时,编译器就知道在哪里查找头文件。
- link_directories: 用于添加库文件搜索路径。这样,在链接时,链接器就知道在哪里查找库文件。
- find_package: 用于查找并加载系统中已安装的包。这对于使用第三方库非常有用。
- set: 用于设置变量。可以用来定义各种路径、标志和其他配置选项。
- message: 用于在构建过程中输出信息,有助于调试和了解构建过程。
- install: 用于指定安装目标时应该包含哪些文件和目录,以及它们应该被安装到什么位置。
- enable_testing 和
add_test: 用于添加测试用例,并在构建过程中运行这些测试。 - catkin_package (针对ROS项目): 用于声明ROS消息文件并将其转换为特定编程语言所需的功能包,以及catkin工程项目文件的编译链接配置。
总的来说,CMakeLists.txt是CMake构建系统的核心,通过编写CMakeLists.txt文件,开发者可以方便地管理项目的构建过程,实现跨平台的构建。在使用CMake时,通常需要先运行cmake命令来生成对应平台的构建文件(如Makefile),然后使用make命令来编译源码生成可执行程序或共享库。
main.cpp
#include <iostream>
#include <stdio.h>
int main() {std::cout << "Hello, CMake!" << std::endl;printf("sb");return 0;
}
然后打开cmd窗口,直接cmake .即可

相关文章:
Cmake的使用
第一步:安装Cmake 双击点开即可,无脑下一步。 第二步:编写一个简单的Cmake项目 CMakeLists.txt文件 # 设置最低的 CMake 版本要求 cmake_minimum_required(VERSION 3.10)# 设置项目名称 project(MyProject)# 添加可执行文件 add_executabl…...
linux系统ELK组件介绍
ELK组件介绍 ELK组件介绍Elasticsearch:Logstash:Kibana:Kafka: Filebeat: ELK 官网地址:https://www.elastic.co 官网搭建:https://www.elastic.co/guide/index.html 组件介绍 Elasticsearch: 是一个基于Lucene的搜…...
回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测
回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测 目录 回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BiTCN基于双向时间卷积网络的数据回归预测(完整源码和数据&a…...
Tailscale中继服务derper使用docker-compose部署
docker启动 docker run --restart always \--name derper -p 12345:12345 -p 3478:3478/udp \-v /root/.acme.sh/xxxx/:/app/certs \-e DERP_CERT_MODEmanual \-e DERP_ADDR12345 \-e DERP_DOMAINxxxx \-d ghcr.io/yangchuansheng/derper:latestdocker-compose启动 version: …...
Spring Cloud 实战系列之 Zuul 微服务网关搭建及配置
一、创建SpringBoot项目 用mavan搭建也可以。(重要的是后面pom里应该引入那些依赖,application.yml怎么配置) 由于开始构建项目时选择了Eureka Server,所以pom.xml中不需要手动添加依赖了 首先在启动类SpringcloudApplicatio…...
【数据结构】队列
前言: 本节博客是对基础数据结构队列的一种实现思路的分享,有需要借鉴即可。 1.队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先 进先出FIFO(First In First Out) 入…...
学习JAVA的第十三天(基础)
目录 API之Arrays 将数组变成字符串 二分查找法查找元素 拷贝数组 填充数组 排序数组 Lambda表达式 集合的进阶 单列集合 体系结构 Collection API之Arrays 操作数组的工具类 将数组变成字符串 //将数组变成字符串char[] arr {a,b,c,d,e};System.out.println(Arra…...
C++--机器人的运动范围
目录 1. 题目 2. 思路 3. C代码测试 4. 测试结果 1. 题目 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格…...
深度学习API——keras初学
keras定义相关概念: Keras是一个深度学习API,使用Python语言编写的github开源项目,主要开发者为谷歌工程师。Keras底层可调用不同的机器学习平台,如TensorFlow、Theano或micsoft-CNTK。 作用:keras主要功能是简化机器…...
Web APIs知识点讲解(阶段二)
DOM-事件基础 一.事件 1.事件 目标:能够给 DOM元素添加事件监听 事件:事件是在编程时系统内发生的动作或者发生的事情,比如用户在网页上单击一个按钮 事件监听:就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函…...
多平台拼音输入法软件的开发
拼音输入法从上个世纪发展到现在, 已经发展了几十年了, 技术上已经非常成熟了. 换句话说, 就是实际上没多少技术含量, 随便来个人就能手搓一个. 本文介绍一个简单的多平台拼音输入法软件的设计和实现, 支持 GNU/Linux (ibus) 平台 (PC) 和 Android 平台 (手机). 目录 1 中文输…...
Flutter学习7 - Dart 泛型
1、泛型类 //泛型类 class Cache<T> {final Map<String, T> _cache {};void saveData(String key, T value) {_cache[key] value;}//泛型方法T? getData(String key) {return _cache[key];} }void main() {Cache<int> cache1 Cache();const String name…...
Git 基本操作 ⼯作区、暂存区、版本库
创建本地仓库: 创建 Git 本地仓库 要提前说的是,仓库是进行版本控制的⼀个文件目录。我们要想对文件进行版本控制,就必须先创建⼀个仓库出来。 首先touch 一个文件: 初始化仓库: 创建完成后,我们会发现当前…...
利用Vue3的新API(customRef)实现防抖效果
customRef是创建一个自定义的 ref,然后显式声明对其依赖追踪和更新触发的控制方式。因为ref是直接更新的,数据修改会马上更新,而customRef可以认为控制更新的过程,比如可以利用这个api控制 空格输入限制、数据更新速度控制、违规内…...
【Linux】在 Ubuntu 系统下使用 Screen 运行 Python 脚本
在 Ubuntu 系统下使用 Screen 运行 Python 脚本的优点 在 Ubuntu 操作系统中,Screen 是一种非常有用的工具,特别是在需要长时间运行的任务或者需要在后台运行的任务中。结合 Python 脚本,Screen 提供了一种灵活且高效的方式来管理和执行任务…...
jxls——自定义命令设置动态行高
文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构,以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式,控制输出excel文…...
前端面试练习24.3.2-3.3
HTMLCSS部分 一.说一说HTML的语义化 在我看来,它的语义化其实是为了便于机器来看的,当然,程序员在使用语义化标签时也可以使得代码更加易读,对于用户来说,这样有利于构建良好的网页结构,可以在优化用户体…...
优先级队列(Java )
目录 一、 优先级队列1、概念 二、优先级队列的模拟实现1、堆的概念2、堆的存储方式 三、堆的创建1、堆向下调整2、堆的创建3、建堆的时间复杂度 四、堆的插入与删除1、堆的插入2、堆的删除 五、用堆模拟实现优先级队列 一、 优先级队列 1、概念 优先级队列(Priori…...
大宋咨询如何进行汽车门店6S标准现场检查
随着汽车市场的快速发展,汽车门店的现场管理日益受到关注。6S标准现场检查作为一项重要的评估工具,正在被越来越多的汽车厂商和经销商采用。 6S标准现场检查是指对汽车门店的整理、整顿、清洁、清扫、素养和安全六个方面进行规范和优化,旨在…...
仿牛客网项目---点赞模块的实现
本篇文章介绍一下项目中的点赞模块。 点赞模块是一个通过使用Redis实现的功能模块,它提供了点赞操作的处理逻辑和数据存取功能。通过服务类和控制器类的配合,点赞模块实现了用户对实体的点赞、点赞数量的查询、点赞状态的查询等功能。该模块使用了Redis…...
简单工厂、工厂方法、抽象工厂的PHP代码区别?
这三个模式名字很像,但解决的问题层级和代码结构完全不同。 简单工厂 (Simple Factory):一个类包办所有创建逻辑(违反开闭原则)。工厂方法 (Factory Method):每个产品对应一个工厂子类(针对一个产品等级&am…...
终端设备可靠性检测报告:读懂设备耐用密码
日常使用手机、智能手表、家用路由器等终端设备时,我们总希望它“扛造耐用”,不轻易出故障。这份终端设备可靠性检测报告,就用通俗的话拆解设备耐用的核心密码,让大家明白,一台靠谱的设备,背后都经过了哪些…...
windows系统部署funrec项目:安装WSL2
注意:WSL系统与Windows系统环境是完全隔离开的,只有代码文件可以互通 windows的anaconda、python、uv、torch、tensorflow等,WSL都不能用,都需要另外安装 WSL 可以访问 Windows 的项目文件(比如 /mnt/d/MyProject/……...
网站SEO推广需要多少钱_如何选择合适的网站 SEO 推广服务商
网站SEO推广需要多少钱_如何选择合适的网站 SEO 推广服务商 一、了解网站SEO推广的基本概念 在当今的数字时代,网站SEO推广(Search Engine Optimization,搜索引擎优化)已成为任何企业在互联网上获得流量和客户的关键手段之一。S…...
Quartus II ROM IP核的配置与高效初始化文件生成技巧
1. ROM IP核基础与使用场景 在FPGA开发中,ROM(Read-Only Memory)是一种常用的存储元件。与RAM不同,ROM中的数据在配置后是固定不变的,非常适合存储不需要频繁修改的配置数据、查找表或预置参数。Quartus II作为业界主流…...
告别Fiddler和Charles,用Proxyman在Android 13上抓HTTPS包(附network_security_config.xml配置)
移动端开发者必备:Proxyman在Android 13上的HTTPS抓包实战指南 如果你是一名移动端开发者,一定遇到过这样的场景:应用在测试环境中表现良好,但上线后却出现各种网络请求异常。传统的Fiddler和Charles虽然功能强大,但在…...
如何15分钟搞定黑苹果配置:OpCore-Simplify零代码自动化终极指南
如何15分钟搞定黑苹果配置:OpCore-Simplify零代码自动化终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置头…...
5大场景全覆盖:BilibiliDown视频下载工具的全方位应用指南
5大场景全覆盖:BilibiliDown视频下载工具的全方位应用指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirro…...
字幕提取与格式转换解决B站内容离线使用难题:BiliBiliCCSubtitle的多场景应用指南
字幕提取与格式转换解决B站内容离线使用难题:BiliBiliCCSubtitle的多场景应用指南 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 当你在B站发现一门优…...
GetQzonehistory完整指南:3分钟学会备份QQ空间所有说说
GetQzonehistory完整指南:3分钟学会备份QQ空间所有说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 想要永久保存QQ空间里的青春回忆吗?GetQzonehistory是一款…...
