cmake学习

news/2024/9/24 22:36:08

cmake学习

静态库

在编译过程中静态链接的

浪费空间:复制,包括编译出来的体积、运行体积

动态库(共享库)

在程序装载时或运行时被动态链接

动态库与使用动态库的程序就在编译期做到了解耦

多个程序也可以共享一个动态库

任何程序都能够在运行时将同一个动态库的目标代码动态链接到自己的程序中执行,而且这份动态库的代码在内存中可以只装载一份

cmake

跨平台、开源

用于构建、测试和打包软件

CMake一般特指用于构建项目的CMake工具及其使用的CMake脚本语言

CMake的配置文件是平台无关且编译器无关的,能够做到一次编写,到处编译

生成原生的Makefile和工作空间:CMake本身并不实际调用编译器和链接器等,而是根据配置生成Makefile或者其他构建工具的配置文件,通过它们来实际调用各种命令完成构建

“元构建工具”,或者说是“构建工具的构建工具”。毕竟,它自己不会构建程序,而是指导其他构建工具来构建程序

cmake脚本语言

“元构建工具”,或者说是“构建工具的构建工具”。毕竟,它自己不会构建程序,而是指导其他构建工具来构建程序

CMake脚本语言是领域特定语言(Domain Specific Language,DSL),即专注于某个应用程序领域的计算机语言。对于CMake来说,它所专注的便是构建这个领域

CMake默认是用于构建任务的,如果想让它像脚本语言一样执行需要指定-P参数

比如,创建一个Cmake.cmake文件,写message(hello, CMake!)

在终端运行:cmake -P Cmake.cmake

对于跨平台的命令行中的目录分隔符,统一采用“/”

cmake基础语法

使用CMake工具构建项目的第一步是编写CMake目录程序

目录程序主要用于描述项目的结构,包括对构建目标的定义及其相互依赖关系的定义等

在CMake目录程序中还可以检测系统环境来配置项目的编译条件、生成源文件等

CMake目录程序需要使用CMake脚本语言来编写

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/64367.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vue3开发中易遗漏的常见知识点

组件样式的特性 Scoped CSS之局部样式的泄露 示例(vue3): 父组件: <template><h4>App Title</h4><hello-world></hello-world> </template> <script> import HelloWorld from ./HelloWorld.vue;export default {name: App,compo…

PasteForm最佳CRUD实践,实际案例PasteTemplate详解(一)

本文将介绍soft.pastecode.cn出品的PasteForm,PasteForm是贴代码使用Dto思想实现的CRUD的一个组件,或者说输出一个思想! 为啥我觉得是最佳的CRUD呢?先结合你的实际项目解答下以下问题: 1.如果有一个系统,有100个表,你的管理端需要多少页面?别和我说100个表很多,需求复…

RTE大会报名丨 重塑语音交互:音频技术和 Voice AI,RTE2024 技术专场第一弹!

Voice AI 实现 human-like 的最后一步是什么?AI 视频爆炸增长,新一代编解码技术将面临何种挑战?当大模型进化到实时多模态,又将诞生什么样的新场景和玩法?所有 AI Infra 都在探寻规格和性能的最佳平衡,如何构建高可用的云边端协同架构?AI 加持下,空间计算和新硬件也迎来…

彻底搞懂回溯算法

1.回溯算法的核心思想 回溯算法的核心思想是:尝试+记录+回退。 先尝试一种选项,在选择该选项的前提下继续寻解,如果最后寻解成功,则记录这个解,否则不用记录,然后再回退到选择该选项前的状态,改为尝试其它选项再继续寻解,判断其它选项是不是解。 2.回溯算法的关键点 回溯…

9.23 ~ 9.29

集训9.23 集训第一天。 早晨因为太多人没拿早读资料被老登 D 了。 不是哥们你不早说 现在我上哪给你找资料去 😅 上午模拟赛。 发现 T1 的图挂了,于是看形式化题意;初始有一张 \(n\) 个点的完全图,接着删除 \(m\) 条边。 询问有多少长度为 \(13\) 的序列 \(p_1,...,p_{13}…

韩嘉自我介绍

1.韩嘉 稳重,温和,计划性 个人感觉很少会有极端情绪比如生气和崩溃之类的,除非极端情况。遇到事情之后先想解决办法,再列计划思考如何一步步解决。 2.特长:小号,钢琴,足球 小号学的时间最长,从三年级一直练到初三,一共练了六年。加入了校管乐团给了我一直坚持练下去的…

判断系统大小端字节序的方法

1、字节序 1.1、大端字节序(big-endian) 数据低位存储在高地址位,数据高位存储在低地址位。 假设定义一个变量并赋予初值: int a = 0x12345678; 对于这个整型数据,一共有四个字节,假设为其分配的地址空间为0x1001~0x1004,则从低位到高位,每个字节依次是:12、34、56、78。…

第二十四讲:MySQL是怎么保证高可用的?

为了让各位更好的了解文章,我归纳了下面几点最重要的: 1、MySQL 高可用系统的可用性,是依赖于主备延迟的。延迟的时间越小,主库故障的时候,服务恢复需要的时间就越短,可用性就越高。 2、主备延迟原因:备库用的机子不行(IOPS是和主库相同的,不要轻视备库)、备库压力太…