Linux
Linux software install
Google repo的使用
Vector AP StartApplication编译脚本解析
Yocto的cmake版本升级
不能自动安装的解决方式
S32G-BSP35.0-SDK使用方法
S32G从SDK生成文件系统的制作过程
Linux Samba设置
Linux添加双网卡
S32G USB-Redirector安装指南
VS code自动生成Doxygen格式注释
Linux下使用多线程下载
使用pandoc 生成带中文的pdf
minicom无法输入的问题解决办法
使用 systemd unit 添加一条路由规则
CMake 教程
步骤 1:基本起点
步骤 2:添加lib库
步骤 3:为库添加使用要求
步骤 4:添加生成器表达式
步骤 5:安装和测试
步骤 6:添加支持测试仪表板
步骤 7: 添加系统内省
步骤 8:自定义命令和生成的文
步骤 9:打包安装程序
步骤 10:选择静态库或共享库
步骤 11:添加导出配置
步骤 12:打包 Debug 和 Release
添加虚拟网卡
Vector AP 去掉防篡改校验
Vector AP startapplication编译与使用
Vector AP问题汇总
Vector AP大型项目开发流程
Vector AP EM
Vector AP 最简单的开发示例
Linux kernel 版本降级
Vector AP StartApplicaiton
startappplication-machine-design
startapplicaiton-machine-integration
amsr-vector-fs-em-executionmanager-design
amsr-vector-fs-em-executionmanager
Vector AP 复杂模型的开发
第一章 Machine和MachineDesign
第二章 Execute Manager
第三章 Log
第四章 State Manager
第五章 State Manager 源码的理解
第六章 Someip daemon
第七章 IPC Service Discovery Daemon
crond的使用方法
解决蓝牙鼠标在 Ubuntu 中单位时间内断开的问题
VPS服务器自建教程
v2rayA的客户端使用配置
GDB调试指南入门篇:揭开程序运行世界的神秘面纱
GDB调试指南高级篇:成为调试专家,掌控程序的命运
Linux安装PyQt5并配置Qt Designer
ADB 命令大全
GoogleTest(一)
GoogleTest(二)简单的TEST宏
GoogleTest(三)简单类函数测试
C++ Template
1. 函数模板
2. 类模板
3. 非类型模板参数
软件版本号规范
EPOLL
C++手札
C++ 使用{}初始化有哪些好处?
现代 C++ decltype 深入解析
函数对象(functor)
Linux性能剖析:CPU、内存、网络与I/O压力测试
AP StateManager
C++ Lambda表达式
C++ 中的Lambda表达式
Lambda 表达式语法
Lambda 表达式的示例
手动发送UDP数据包
pyqt5生成的UI界面不能输入中文
自己搭建repo镜像
摄影
Sony仿富士PP值设置
诗词歌赋
本文档使用 MrDoc 发布
-
+
首页
CMake 教程
# CMake 教程 ## 简介 CMake 教程提供了一步一步的指南,涵盖了 CMake 帮助解决的常见构建系统问题。通过在示例项目中看到各种主题如何一起工作,可以非常有帮助。 ## CMake的书写大体框架 在 CMake 中,语句的顺序通常是有一定影响的,尤其是对于一些全局的设置和变量定义。这里给出一些常见的 CMake 语句的先后顺序建议: 1. **项目定义**:在 CMakeLists.txt 文件的开头,定义项目的名称和支持的最低版本。 ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) ``` 2. **设置 C++ 标准**:在定义项目之后,设置所需的 C++ 标准及是否要求严格遵循该标准。 ```cmake set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) ``` 3. **包含子目录**:如果项目有多个子目录,通常在设置完标准之后包含这些子目录。 ```cmake add_subdirectory(subdirectory1) add_subdirectory(subdirectory2) ``` 4. **添加目标及源文件**:在设置完标准并包含子目录后,添加项目的目标以及对应的源文件。 ```cmake add_executable(MyExecutable main.cpp) ``` 5. **链接库**:如果项目依赖外部库,通常在添加目标之后链接这些库。 ```cmake target_link_libraries(MyExecutable PUBLIC SomeLibrary) ``` 6. **安装规则**:在所有目标和库都被定义后,可以设置安装规则。 ```cmake install(TARGETS MyExecutable DESTINATION bin) ``` 这只是一种通用的建议顺序,并不是所有项目都需要完全按照这个顺序来编写 CMakeLists.txt 文件。具体情况可能因项目的复杂性和需求而有所不同。 ## 步骤 教程的源代码示例可以在[`这个存档`](/media/attachment/2024/02/cmake-3.29.0-rc2-tutorial-source.zip)中找到。每个步骤都有自己的子目录,其中包含可用作起点的代码。教程示例是渐进式的,因此每个步骤提供了前一步骤的完整解决方案。 + [步骤 1: 基本起点](http://samlee820820.synology.me:10086/project-3/doc-47/) + [练习 1 - 构建基本项目](http://samlee820820.synology.me:10086/project-3/doc-47/#exercise-1-building-a-basic-project) + [练习 2 - 指定 C++ 标准](http://samlee820820.synology.me:10086/project-3/doc-47/#exercise-2-specifying-the-c-standard) + [练习 3 - 添加版本号和配置头文件](http://samlee820820.synology.me:10086/project-3/doc-47/#exercise-3-adding-a-version-number-and-configured-header-file) + [步骤 2: 添加一个库](http://samlee820820.synology.me:10086/project-3/doc-48/) + [练习 1 - 创建一个库](http://samlee820820.synology.me:10086/project-3/doc-48/#exercise-1-creating-a-library) + [练习 2 - 添加一个选项](http://samlee820820.synology.me:10086/project-3/doc-48/#exercise-2-adding-an-option) + [步骤 3: 为库添加使用要求](http://samlee820820.synology.me:10086/doc/49/) + [练习 1 - 为库添加使用要求](Adding%20Usage%20Requirements%20for%20a%20Library.html#exercise-1-adding-usage-requirements-for-a-library) + [练习 2 - 使用接口库设置 C++ 标准](Adding%20Usage%20Requirements%20for%20a%20Library.html#exercise-2-setting-the-c-standard-with-interface-libraries) + [步骤 4: 添加生成器表达式](Adding%20Generator%20Expressions.html) + [练习 1 - 使用生成器表达式添加编译器警告标志](Adding%20Generator%20Expressions.html#exercise-1-adding-compiler-warning-flags-with-generator-expressions) + [步骤 5: 安装和测试](Installing%20and%20Testing.html) + [练习 1 - 安装规则](Installing%20and%20Testing.html#exercise-1-install-rules) + [练习 2 - 测试支持](Installing%20and%20Testing.html#exercise-2-testing-support) + [步骤 6: 添加对测试仪表板的支持](Adding%20Support%20for%20a%20Testing%20Dashboard.html) + [练习 1 - 将结果发送到测试仪表板](Adding%20Support%20for%20a%20Testing%20Dashboard.html#exercise-1-send-results-to-a-testing-dashboard) + [步骤 7: 添加系统内省](Adding%20System%20Introspection.html) + [练习 1 - 评估依赖可用性](Adding%20System%20Introspection.html#exercise-1-assessing-dependency-availability) + [步骤 8: 添加自定义命令和生成文件](Adding%20a%20Custom%20Command%20and%20Generated%20File.html) + [步骤 9: 打包安装程序](Packaging%20an%20Installer.html) + [步骤 10: 选择静态或共享库](Selecting%20Static%20or%20Shared%20Libraries.html) + [步骤 11: 添加导出配置](Adding%20Export%20Configuration.html) + [步骤 12: 打包调试和发布](Packaging%20Debug%20and%20Release.html)
admin
2024年3月5日 08:52
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码