cmake的使用--从零建立一个小cmake工程

本文详细介绍了使用CMake进行项目配置的方法,包括设置最低版本要求、定义项目名称、添加可执行文件及其源代码,以及如何指定项目支持的编程语言。通过实例展示了CMakeLists.txt文件的编写规范。

A minimal project

代码仓库地址

https://github.com/zzu-andrew/linux-sys/tree/dfew/CMake 
# 说明最低cmake版本要求
cmake_minimum_required(VERSION 3.2)
# 工程名
project(MyApp)
# 可执行程序名
add_executable(myExe main.cpp)

支持添加多个文件

add_executable(myExe
    main.cpp
    src1.cpp
    src2.cpp
)

命令不区分大小写

add_executable(myExe main.cpp)
ADD_EXECUTABLE(myExe main.cpp)
Add_Executable(myExe main.cpp)

可只填写主版本和次版本

cmake_minimum_required(VERSION major.minor[.patch[.tweak]])

每个CMake工程都应该包含一个project()命令,该命令应该在cmake_minimum_required()命令之后调用。虽然能只给一个工程名,但是最好给出工程的版本信息,方便其他模块能够调用

project(projectName
    [VERSION major[.minor[.patch[.tweak]]]]
    [LANGUAGES languageName ...]
)

The optional LANGUAGES argument defines the programming languages that should be enabled for the project. Supported values include C, CXX, Fortran, ASM, Java and others. If specifying multiple languages, separate each with a space. In some special situations, projects may want to indicate that no languages are used, which can be done using LANGUAGES NONE.

If no LANGUAGES option is provided, CMake will default to C and CXX.

CMake versions prior to 3.0 do not support the LANGUAGES keyword, but languages can still be specified after the project name using the older form of the command like so:

project(myProj C CXX)
### 使用 CMake 构建项目并安装至特定 sysroot 目录 为了实现这一目的,需遵循一系列命令与配置来确保构建过程顺利进行,并最终将生成的目标文件放置于指定的 `sysroot` 路径之下。 #### 创建构建环境 在工程目录下建立名为 `build` 的新文件夹用于存放编译产物。通过 shell 或者批处理脚本完成此操作: ```bash mkdir build && cd build ``` 这一步骤为后续调用 CMake 准备好了工作空间[^1]。 #### 配置 CMake 选项 当准备就绪后,在上述创建的工作区内运行带有适当参数的 CMake 命令以初始化构建系统。对于跨平台开发而言,可能还需要额外设置工具链文件以及针对不同架构的选择等选项。例如: ```bash F:\windows\native\build-tools\cmake\bin\cmake.exe \ -G "Ninja" \ -D OHOS_STL=c++_shared \ -D OHOS_ARCH=armeabi-v7a \ -D OHOS_PLATFORM=OHOS \ -D CMAKE_TOOLCHAIN_FILE=F:\windows\native\build\cmake\ohos.toolchain.cmake .. ``` 此处指定了 Ninja 作为生成器,并引入了自定义工具链文件以便适应特定的操作系统需求[^2]。 #### 定义安装路径 为了让 CMake 知道应该把生成的结果放到哪里去,可以在顶层 `CMakeLists.txt` 中加入如下语句来设定默认安装前缀(`CMAKE_INSTALL_PREFIX`)指向所需的 `sysroot` 地址: ```cmake set(CMAKE_INSTALL_PREFIX /path/to/sysroot CACHE PATH "Installation directory prefix") install(TARGETS your_target_name DESTINATION ${CMAKE_INSTALL_PREFIX}) ``` 这段代码片段会告知 CMake 将目标二进制文件复制到 `/path/to/sysroot/bin/your_executable` 下面(假设是一个可执行程序)。如果要安装库,则应调整目的地为 lib 子目录;同理,资源文件则通常放在 share 或 data 下方[^5]。 #### 执行构建与安装流程 最后,利用所选生成器启动实际的编译任务,并随后触发安装动作。如果是基于 Makefile 则只需简单输入: ```bash make all install ``` 而对于像 Ninja 这样的现代快速构建系统来说则是: ```bash ninja all install ``` 以上就是完整的从开始直至成功部署整个项目的全过程概述。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

andrewbytecoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值