Cmake-3

本文详细解读Cmake中的private、interface和public三大关键词,分别介绍它们在项目构建中的作用,包括私有部分的隔离、接口的暴露和公共部分的链接。通过实例演示,帮助理解如何有效管理依赖和代码可见性。

Cmake 3大关键词

3大关键词是private,interface和public

1)private

是私有的,hello-world中头文件不会includehello的头文件,也不会使用hello源文件的方法。

target_link_libraries(hello-world PRIVATE hello) // hello-world 表示可执行文件目标

target_include_directories(hello-world PRIVATE hello)

2)interface

生成 libhello-world.so 时,只在libhello-world.so 对外的头文件——hello_world.h 中包含 了 hello.h, hello_world.c 中不包含 hello.h,即 libhello-world.so 不使用 libhello.so 提供的功能,只使用 hello.h 中的某些信息,比如结构体。但是 main.c 需要使用 libhello.so 中的功能

target_link_libraries(hello-world INTERFACE hello)

target_include_directories(hello-world INTERFACE hello)

3)public

公开的

PUBLIC = PRIVATE + INTERFACE。生成 libhello-world.so 时,在 hello_world.c 和 hello_world.h 中都包含了 hello.h。并且 main.c 中也需要使用 libhello.so 提供的功能

target_link_libraries(hello-world PUBLIC hello)

target_include_directories(hello-world PUBLIC hello)

 

06-14
### CMake 3.x 版本配置与下载 CMake 是一个强大的跨平台构建工具,广泛用于软件项目的构建、测试和打包。对于 CMake 3.x 系列版本的配置或下载,可以通过以下方式实现: #### 下载 CMake 3.x CMake 的官方下载页面提供了不同平台的安装包。用户可以根据自己的操作系统选择合适的版本进行下载[^4]。例如,访问 [CMake 官方下载页面](https://cmake.org/download/) 并选择对应版本的链接。对于特定版本如 CMake 3.26.3,可以直接通过以下命令行工具完成下载和安装(以 Linux 为例): ```bash wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-x86_64.tar.gz tar -xvzf cmake-3.26.3-linux-x86_64.tar.gz sudo mv cmake-3.26.3-linux-x86_64 /usr/local/cmake-3.26.3 ``` #### 配置 CMake 3.x 在配置 CMake 时,通常需要设置一些环境变量以便正确调用 CMake 工具链。例如,在 `settings.json` 文件中可以定义 CMake 的源目录、构建目录以及相关的配置参数[^2]。以下是一个示例配置文件内容: ```json { "cmake.sourceDirectory": "/path/to/source", "cmake.buildBeforeRun": true, "cmake.buildDirectory": "${workspaceFolder}/build", "cmake.configureSettings": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "/usr/local", "WITH_DEBUG": "1" } } ``` 此外,CMake 支持通过命令行直接生成构建文件。例如,使用以下命令可以为项目生成 Makefile 或其他构建系统文件: ```bash cmake -S /path/to/source -B /path/to/build -DCMAKE_BUILD_TYPE=Debug ``` #### 常见问题解决 如果在配置过程中遇到类似 `variables are set to NOTFOUND` 的错误[^1],可以检查是否正确指定了依赖库的路径或版本号。例如,在 CMakeLists.txt 中确保正确设置了 `find_package` 或 `set` 指令。 --- ### 示例代码:生成 CMake 构建文件 以下是一个简单的 CMakeLists.txt 示例,展示如何配置基本的 CMake 项目: ```cmake cmake_minimum_required(VERSION 3.20) project(MyProject) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(MyExecutable main.cpp) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值