cmake

CMake是什么?具体有什么作用? 文章目录CMake——高级编译配置工具CMake定义CMake缩写CMake应用场景CMake主要功能1、配置和生成各大平台的工程(vs的vcxproj,Qt的Pro):2、生成makefile文件补充:makefile介绍什么是makefile?为什么使用makefile:总结:CMake和makefile CMake——高级编译配置工具 CMake定义 CMake是一个跨平台的编译(Build)工具,可以用简单的语句来描述所有平台的编译过程。 CMake能够输出各种各样的makefile或者projec 阅读详情

cmake 编译的是makefile文件

cmake 是一种跨平台编译工具,比make更为高级。

cmake主要是编写cmakelists.txt文件,然后用cmake命令将cmakelists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序。

详细解释

gcc 是最基础的c的编译器(compile)

make是对gcc的一种升级和改造

是对g++,gcc 这种最基础的 c 编译器的一种升级和改造,内核还是gcc。

其优点在于可以批量处理

当你的程序有多个源文件时,用gcc逐个编译时容易出现混乱并且工作量大。因此出现了make工具。make工具可以看成是智能的批处理工具,它本身没有编译和链接的功能,而是用类似批处理的方式---通过调用makefile文件中用户指令的命令来进行编译和链接的。make 工具根据makefile中的命令进行编译和编译的。

cmake 又是对make的升级和改造

makefile在一些简单的工程完全可以人工下手,但是当工程十分大时,手写makefile是十分麻烦的,如果换个平台makefile又要重新修改。

这是出现了cmake 工具,cmake 就可以生成makefile文件给上面的make用。并且可以跨平台身成对应平台能用的Makeflie文件,不需要自己在进行修改。


安装方法

一、直接法(无法控制版本)

sudo apt install cmake

二.Cmake源码编译安装 

第一步:卸载原来的cmake版本

sudo apt-get remove cmake

第二步:自https://cmake.org/download/下载cmake源码,如cmake-3.17.1.tar.gz

第三步:解压cmake源码

在cmake源码所在文件夹中打开命令终端,解压文件:

tar -xzvf file.tar.gz //解压tar.gz

第四步:进入解压后的cmake文件,执行:

在比之前需要安装依赖项

sudo apt-get install g++
sudo apt-get install libssl-dev
./bootstrap

第五步:编译构建:

make

第六步:安装

sudo make install

三.验证安装版本

cmake --version

CMAKE 编写 FindXXX.cmake 首先为什么要写 FindXXX.cmake 对于一个大型项目,作为一个合格的开发人员来说,特别是C/C++开源人员。会一门编译工具非常重要。在一个大型项目中,使用过Makefile 的肯定感觉到问题就是,当项目庞大的时候,越到后面的库或者进程,依赖的头文件,库将会越来越多。在写makefile也是一件非常痛苦的一件事。相信这个问题,不只是在Makefile 中存在,cmake 中也会存在。 那么如果,可以让编译过后的库自己解决,自己的依赖。是不是就可以解决这个问题呢? cmake提供这样的方法: find_ 阅读详情

相关推荐

【cmake】自定义Findxxx.cmake模块

在一个项目当中,我们自己的可执行文件和库文件很有可能去引入和链接其他库文件,例如一个demo可执行文件需要去链接一个名为libadd.so# 引入头文件路径# 引入库文件路径# 链接目标库。

南_无_生的博客 2349

CMake 入门与进阶

目录cmake 简介cmake 和Makefilecmake 的下载cmake 的使用方法 在前面两篇内容中,我们编写了很多示例程序,但这些示例程序都只有一个.c 源文件,非常简单。所以,编译这些示例代码其实都非常简单,直接使用GCC 编译器编译即可,连Makefile 都不需要。但是,在实际的项目中,并非如此简单,一个工程中可能包含几十、成百甚至上千个源文件,这些源文件按照其类型、功能、模块分别放置在不同的目录中;面对这样的一个工程,通常会使用make 工具进行管理、编译,make 工具依赖于Makefi

zhuguanlin121的博客 6939

【CMake】CMake从入门到实战系列(一)——CMake介绍以及安装方法

CMake从入门到实战系列(一)——CMake介绍以及安装方法

萧邯嵌入式笔记 4907

【Cmake】xx.cmake 文件是什么|有什么用?

.cmake 文件谁用 .cmake 文件 是给cmake执行用的: cmake -P /path/of/xxx.cmake cmake 参数-P的解释 -P<file> Process script mode. Process the given cmake file as a script written in the CMake language. No configure or generate step is performed and the cache i...

我的笔记本 2万+

【Cmake】Cmake基础学习

本文主要介绍项目编译工具cmake的基本用法

Jacky_Feng的博客 1392

cmake:CMAKE_CURRENT_SOURCE_DIR与CMAKE_SOURCE_DIR

CMAKE_CURRENT_SOURCE_DIR:当前CMakeLists.txt所在目录 CMAKE_SOURCE_DIR: 最外层CMakeLists.txt所在目录 最外层CMakeLists.txt cmake_minimum_required(VERSION 3.16) project(matser) set(CMAKE_CXX_STANDARD 14) message("matser_CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR} ) mess..

OceanStar的博客 2万+

【CMake】cmake的install指令

在cmake的时候,最常见的几个步骤就是: mkdir build && cd build cmake .. make make install 那么,make install的时候,是需要我们定义一个install的目标么? 显然并不需要,作为一个经常需要被运行的指令,官方提供了一个命令install,只需要经过该命令的安装内容,不需要显示地定义install目标。此时,mak...

Yngz_Miao的博客 15万+

浅析CMake —— CMake入门详细教程 CMake基本命令和用法

所有目标文件和所需的库合并在一起。0和1组成的二进制指令。知识点之间的内在联系。

weixin_49649078的博客 1394

现代 CMake 简明教程(一)- CMake 基础

系列文章目录 现代 CMake 简明教程(一) - CMake 基础 前言 用 CMake 来构建 C/C++ 项目是业内的主流做法。最近,我们的项目代码做了一些拆分和合并:引入其他仓库代码,并且将公共部分拆分以供多个仓库同时使用。为此,就得修改项目中的 CMake 以满足需求。 在做这件事情时,过程是相当痛苦的,修改的难度超过了我的预期。这份痛苦的回忆,让我陷入了沉思:这 CMake 咋这么不好使,是我的使用姿势不对吗?CMake 的最佳实践是啥? 在经过一番搜索和学习,我开始了解 Modern

记录学习的过程 1万+

cmake教程|cmake入门实战

旧博文,搬到 csdn 原文:http://rebootcat.com/2020/09/02/cmake/ 前言 我是一个 linux c++ 开发者,但是一直对 Makefile 的语法很是头痛,每次都记不住,所以每次写 Makefile 都很痛苦,Makefile 里需要你自己编写依赖和推导规则,这个过程能不能简单点呢? 对于编译一个 C++ 工程来说,也许需要的就是头文件路径、库路径、编译参数,剩下的东西基本也不重要,这三样足够去编译一个工程了。所以有没有一个工具能简单点的去实现 C++ 项目的构.

人至贱则无敌 2201

深入浅出之CMake工具及CMakefile文件

CMake是一个跨平台的自动化建构系统,它使用一种名为CMakeLists.txt的配置文件来控制软件编译过程。

浩瀚之水的专栏 2058

[cmake]cmake命令之cmake_policy

通过CMP形式来唯一定义一个策略,例如CMake的3.23版本,定义的策略有130个,从CMP0000到CMP0129。

FL1768317420的博客 1953

Windows下配置MinGW和CMake编译Makefile

在windows下使用CMake编译C++源码产生的是Visual Studio工程文件,而不是Makefiles(linux默认是这种编译文件)。现在需要在windows下使用cmake直接编译产生Makefile,继而使用make命令执行build、link等步骤形成target可执行exe文件。 1、安装minGW和CMake 2、在windows配置minGW和CMake的bin环境变...

qm5132的博客 1万+

cmake:cmake_policy命令

引入原因 管理CMake策略设置。有关定义的策略,请参阅cmake policies(7)手册。 随着CMake的发展,为了修复bug或改进现有特性的实现,有时需要更改现有行为。 CMake策略机制旨在帮助在CMake的新版本引入行为更改时保持现有项目的构建。 每个新策略(行为变化)都会被赋予一个形式为CMP< NNNN >的标识符,其中< NNNN >是一个整数索引。 与每个策略相关的文档描述了旧的和新的行为以及引入策略的原因。 项目可以设置每个策略来选择所需的行为。 当CMak

OceanStar的博客 1万+

华为FusionCharge 720kW液冷直流快充桩主电流全路径深度详解

本文档详细介绍了华为FusionCharge 720kW液冷分体式直流充电系统的主电流路径全链路解析,适用于配套DS720-720LCNA1充电主机及DT600L1-CNA1液冷终端、DT250N2-CNA1自然冷终端的运维工作。内容涵盖从电网交流输入到电动汽车充电的全过程,重点解析交流门、整流正门、主控正门等五大柜门区域的核心元器件分布及功能,包括额定参数、安全规范、故障排查等关键运维知识。操作人员需持有高压电工证并通过专项培训,作业时必须严格遵守断电验电、穿戴PPE防护装备等安全红线。文档通过16个关键

2401_84939870的博客 749

华为EC6110系列(3798mv310芯片)强刷固件全解析:从准备到实战

本文详细解析了华为EC6110系列(3798mv310芯片)强刷固件的全过程,从准备工作到实战步骤,包括固件特点、刷机工具准备、详细刷机步骤及常见问题解决方案。适合想要提升盒子性能的用户参考,特别强调了刷机过程中的注意事项和实用技巧。

rock5的博客 728

cmake编译

CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。因此CMake的编译基本就两个步骤: cmake make CMake说明 一般把CMakeLists.txt文件放在工程目录下,使用时,先创建一个叫build的文件夹(这个并

weixin_44359953的博客 1万+

OrCAD Capture CIS 17.4 原理图绘制

OrCAD Capture CIS 17.4 原理图绘制

qq_38960013的博客 7633

CMake | CMake模块

将CMakeLists.txt文件分成几个模块;CMake相关命令:1.CMAKE_MODULE_PATH;2.include

该用户还没想到好的昵称的博客 9195

DDR内存设计必看:DFI接口协议详解与实战避坑指南(附时序图解析)

本文深入解析了DDR内存设计中连接内存控制器与物理层的DFI接口协议,聚焦于DDR4/DDR5设计的实际痛点。文章详细阐述了协议版本兼容性、时钟架构(匹配频率与频率比系统)、PCB信号完整性设计以及上电初始化与调试等关键环节,为硬件工程师提供了一套从理论到实战的完整避坑指南,并附有时序图解析以助理解。

weixin_29256771的博客 330

Arcgis使用NDVI值遥感反演叶面积指数(LAI)

经验模型反演操作不难,主要是要多看文献,了解公式。本文中的公式我也不清楚是哪个作物的NDVI和LAI的关系(别人提供的),继续看文献整理吧。后续会在下面罗列更新一下主要公式。

所有专家都曾始于新手 8430

【Cmake】Cmake概览

目录一.环境准备1.1.Cmake安装1.2. VSCodeCMake插件安装1.3 快速样例-helloworld⼯程二. cmake的基础命令⾏使用示例2.1.文件准备2.2.⽣成构建系统2.3.编译连接2.4.测试Ctest模块2.5.测试安装模块2.6.测试打包模块2.7 查看帮助CMake语法简洁清晰,易于上手,同时功能强大而灵活,在现代C/C++开发中应用极为广泛。其卓越的跨平台能力和高度的IDE支持,使其已成为C/C++领域事实上的构建标准与工程管理的核心工具。掌握CMake不仅能够让你的项目

2301_80224556的博客 1691

YOLO车辆测距、车辆识别与单目测距

YOLO(You Only Look Once)是一种实时物体检测系统,能够识别视频或图像中的多个对象,并确定其位置。结合车辆识别与单目测距技术,YOLO可以用于交通监控、自动驾驶等应用场景,通过单个摄像头实现车辆的识别与距离测量。YOLO结合单目测距技术,在多个应用领域展现出巨大的潜力与灵活性。其实时性和准确性为智能交通、自动驾驶等领域提供了强有力的技术支持。

走向CTO的路上... 1674

cmake:命令行工具cmake

概要 Generate a Project Buildsystem cmake [<options>] <path-to-source> cmake [<options>] <path-to-existing-build> cmake [<options>] -S <path-to-source> -B <path-to-build> Build a Project cmake --build <dir&gt

OceanStar的博客 1万+

RK3588 部署 YOLO26 目标检测:PT → ONNX → RKNN 全流程

YOLO26n 在 RK3588 上 INT8 量化后 NPU 推理约 15ms,系统 FPS 约 55,可以覆盖边缘端实时检测需求。模型从 PT 到 RKNN 的转换要用opset=11避免算子兼容问题。先用 YOLO26n + 640 输入跑通全链路,确认推理结果正确后再做性能调优。

m0_64661770的博客 303

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型

1 准备 环境配置:https://blog.youkuaiyun.com/weixin_50008473/article/details/115250986?spm=1001.2014.3001.5501 YOLOv5_DeepSORT_Pytorch代码地址: https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch DeepSORT论文:https://arxiv.org/pdf/1703.07402.pdf 2 训练目标检测模型 训练自己的目标检测模

weixin_50008473的博客 1万+
上一篇: 深度学习环境的搭建
下一篇: LaTex 的相关
weixin_47532300
博客等级 码龄7年 33粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值