sel4 cmake

简介: sel4 cmake

1. 背景

在看sel4编译过程的时候,发现使用cmake构建的编译系统,因此本文记录cmake相关语法,方便后续快速查看。

2. cmake工具

2.1 查看cmake版本

cmake --version

显示:cmake version 3.10.2

2.2 查看cmake安装位置

which cmake

显示:/usr/bin/cmake

2.3 切换高版本cmake

export PATH=/usr/cmake-3.23.0-linux-x86_64/bin:$PATH
cmake --version

显示版本:cmake version 3.23.0

which cmake

显示修改后路径:/usr/cmake-3.23.0-linux-x86_64/bin/cmake

3. 语法

3.1 cmake_minimum_required(VERSION 3.7.2)

表示编译系统需要的cmake版本最低是3.7.2,由于我的系统默认cmake版本是3.10.2,我做了一个升级,别的地方需要更高的cmake版本。

3.2 include(settings.cmake)

包含其他的 cmake 文件,被包含的文件一般以 cmake结尾

3.3 project(sel4test C CXX ASM)

项目名字:sel4test

支持编程语言:c c++ ASM

3.4 find_package(seL4 REQUIRED)

寻找FindseL4.cmake 文件

./kernel/FindseL4.cmake

3.5 set(KernelRootCNodeSizeBits 13 CACHE INTERNAL “”)

变量设置,将KernelRootCNodeSizeBits设置成13

3.6 message

向终端用户输出自定义信息,主要包含 3 种信息:

  • SEND_ERROR 生产错误,生成过程被跳过;
  • STATUS 输出前缀为 – 的信息;
  • FATAL_ERROR 立即终止所有 cmake 过程。
    实例:
message(STATUS "binary dir ${sel4test_BINARY_DIR}")
message(STATUS "source dir ${sel4test_SOURCE_DIR}")

3.7 cmake cache scripts

CMake缓存脚本提供预配置选项的子集,允许项目用户避免手动设置每个选项。缓存脚本的文件扩展名为.cmake。

项目可以提供缓存脚本文件,每个文件都包含配置单个功能或选项所需的缓存设置。通过组合多个.cmake文件,可以以特定的方式初始化项目。缓存脚本配置是通过在初始化构建目录时将-C<file>传递给cmake来提供的。

3.8 持续更新…

相关文章
portraiture磨皮插件安装许可证密钥免费
对于Photoshop的修人像,推荐使用滤镜磨皮插件,简单操作就能给人像磨皮,再也不用钻研晦涩难懂的中性灰、高低频磨皮、通道磨皮等对新手相当不友好的手动磨皮方法。常用的portraiture滤镜磨皮插件,安装即可使用。
16269 0
|
小程序 前端开发 开发工具
微信小程序云开发|基于微信小程序实现房产中介平台系统
微信小程序云开发|基于微信小程序实现房产中介平台系统
381 0
|
Java 数据库连接 数据库
Spring Boot 中的事务管理
Spring Boot 中的事务管理
|
11月前
|
机器学习/深度学习 编解码 自然语言处理
王炸组合,阶跃星辰SOTA模型Step-Video和Step-Audio模型开源
王炸组合,阶跃星辰SOTA模型Step-Video和Step-Audio模型开源
438 0
|
存储 缓存 程序员
c语言的存储类型-存储类
本文详细介绍了C语言中的存储类型及其分类,包括基本类型(如整型、浮点型)和复合类型(如数组、结构体)。重点讲解了不同存储类别(`auto`、`static`、`register`、`extern`、`typedef`、`volatile`、`const`)的特点及应用场景,并展示了C11/C99引入的新关键字(如`_Alignas`、`_Atomic`等)。通过示例代码解释了每个存储类别的具体用法,帮助读者更好地理解和运用这些概念。
|
关系型数据库 数据管理 Go
《PostgreSQL数据分区:原理与实战》
《PostgreSQL数据分区:原理与实战》
367 0
|
传感器 编解码 前端开发
平行操控之高危作业-远程无人挖掘机优势及技术实现
无人挖掘机在土石方、煤矿开采、冶金建筑等领域发挥重要作用,通过精确导航、高精度传感与控制技术,提升作业效率与安全性。在建筑场景中,实现自主避障、自动装车等功能,提高施工效率并降低成本。应急救援时,无人挖掘机能迅速进入危险区域执行任务。技术上,利用低延迟音视频传输与控制技术,实现远程高效操控,支持多种协议与格式,确保稳定流畅的远程作业体验。
331 0
|
存储 区块链
区块链技术在版权保护与数字内容分发中的创新
区块链技术在版权保护与数字内容分发中的创新
|
消息中间件 自然语言处理 负载均衡
RabbitMQ揭秘:轻量级消息队列的优缺点全解析
**RabbitMQ简介** RabbitMQ是源自电信行业的消息中间件,支持AMQP协议,提供轻量、快速且易于部署的解决方案。它拥有灵活的路由配置,广泛的语言支持,适用于异步处理、负载均衡、日志收集和微服务通信等场景。然而,当面临大量消息堆积或高吞吐量需求时,性能可能会下降,并且扩展和开发成本相对较高。
874 0
|
SQL 监控 Oracle
oracle阻塞会话与kill
oracle阻塞会话与kill