首页 > 其他分享 >Cmake 学习记录

Cmake 学习记录

时间:2023-04-14 12:44:46浏览次数:44  
标签:cmake configure 记录 make makefile 学习 编译 makefiles Cmake

https://cmake.org/documentation/ 官网有相关的文档,可以以官方的文档进行了解。
首先我们先了解一下Cmake的大致使用目的,以前使用过qt,qt有Qmake这个文件,让我大致了解了过程,就是有这么一份文件,配置了相关属性,然后利用工具,将目标工程编译打包。
引用下官网的简介:
CMake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. The suite of CMake tools were created by Kitware in response to the need for a powerful, cross-platform build environment for open-source projects such as ITK and VTK.

注意到这里是 generate native makefiles,这里的makefiles 指的是 makefile?
https://opensource.com/article/18/8/what-how-makefile
看看大佬的描述
makefile 就是类似构建脚本一样的东西,里面描述的是构建的时候需要运行的一系列命令。同时又引出了make 这个工具。跟着这个文章先简单了解一下makefile的语法,再了解make到底是什么,make太多八股了,也许直接使用cmake这个工具会更好,这里暂时先略过。
https://cmake.org/cmake/help/latest/guide/user-interaction/index.html#guide:User Interaction Guide
简单了解一下cmake的概念,camke的文件最好不要手动修改,运行cmake会覆盖修改。
再者是configure configure 是脚本,

configure 将 Makefile.in 转成当前平台构建环境的makefile

cofnigure脚本又需要当前的环境,所以出现了Autotools, 这个工具查询当前系统的环境变量、平台架构、当前所依赖的库以及他们的位置,然后根据这些信息去make,这样就能实现同一套代码仅需configure一下就可以在不同的unix/linux系统中编译运行。

简单了解构建系统之后开始ffmpeg的编译。
由于手上的环境是macos,所以以mac的环境去编译

标签:cmake,configure,记录,make,makefile,学习,编译,makefiles,Cmake
From: https://www.cnblogs.com/Keep-J0K3R/p/17317958.html

相关文章

  • C++ 学习 第四天
    流程控制练习题1.控制台输入一个数(不多于五位),并将每一位上的数进行输出2.一个球从100米的高度自由落下,每次落地后反跳回原高度的一半;再落下,求他在第10次落地时,共经过了多少米?第十次反弹多高? 3.接上题,球经历多少次反弹后,反弹高度小于1米?4.计算1000内的完数。完数:一个数恰好......
  • WebRTC学习记录以及以Janus-gateway流程增进理解
    这篇文章是我按照我的学习习惯记录的文章,借鉴了许多大佬的学习框架,以及独自去验证正确性的一个过程Web实时通信(Real-TimeCommunication)概述https://webrtcforthecurious.com/zh/docs/01-what-why-and-how/看完只有一个感受:为什么音视频要扯上web,其中的协议大部分都来自web的......
  • 5、后端学习规划:.Net学习 - 学习规划系列文章
          .Net是微软发布的一整套的软件编程解决方案。笔者从大学的时代开始就阅读.netframework的书籍了,但是当时没有进行实践。毕业后,笔者去了微软技术中心的公司上班,所以就接触了.net以及C#编程语言。作为现在流行的开源的方案(C#代码能够反编译成代码,虽然有代码混淆工具),其......
  • Python学习笔记一:列表
    一.列表1.定义列表,是由一系列按照特定顺序排列的元素组成的一个有序集合。其中可以包含字母,数字,或者其他任何元素,每一个元素之间不一定有关系。不过,在创建列表时,建议还是将相同类型的元素或者相互之间有关联的元素放在一个列表中。鉴于包含的元素的数量,通常在给列表......
  • [深入推导]CS231N assignment 2#4 _ 卷积神经网络 学习笔记 & 解析
    卷积神经网络基本算法实现卷积神经网络应该算是图像处理中绝对的主流了,关于算法得基本思想我在之前也学的比较懂了,这点如果不了解网上有很多教程.不过我并没有用代码亲自实现它.我们首先确定怎么编写.前面搞全连接网络总是会想着怎么去简化运算,现在我们接触了新的网络,......
  • 从零开始,轻松学习 Shell 编程!实用技巧带你一路飙升!
    欢迎来到《Shell脚本入门》教程!Shell脚本是一种用于自动化任务和批量处理的脚本语言,广泛应用于Unix和Linux系统中。在本教程中,我们将为您介绍Shell脚本的基础知识和使用方法。编辑第一部分:Shell脚本介绍Shell脚本是一种命令行脚本语言,用于在Unix和Linux操作系统中执行一系列命令。......
  • 人工智能技术的最新进展:机器学习算法的应用与优化
    ​ 人工智能技术的不断发展,机器学习算法已经成为了人工智能领域的重要组成部分。机器学习算法是一种通过数据训练模型,从而使计算机能够自动学习和改进的技术。在过去的几年中,机器学习算法已经在各个领域得到了广泛的应用,包括自然语言处理、图像识别、智能推荐等。在机器学习算法......
  • 前端小知识点扫盲笔记记录8
    前言我是歌谣放弃很容易但是坚持一定很酷今天继续对前端知识的小结命令模式宏命令<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="......
  • ubuntu 16.04 下 安装CMAKE 及VCPKG~~
    1安装CMAKE1.1wgethttps://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4.tar.gz1.2tar-zxvfcmake-3.21.4.tar.gz1.3进入目录后:./bootstrap,如果提示没有OPENSSL,重新安装OPENSSL或者如下安装LIBSSL-DEV//更新apt-get下载源节点sudoapt-getupdat......
  • Django入门学习
    Django是一个开放源代码的web应用框架,由python编写,采用了MVT软件设计模式,即模型(Model)、视图(View)和模板(Template)。一、Django版本对应python版本Django版本Python版本3.23.6,3.7,3.8,3.9,3.10(在3.2.9中就已经加入了)4.03.8,3.9,3.104.13.8,3.9,3.10,3......