Cmake-3

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

 

### CMake命令行版本与CMake-GUI版本不一致的原因及解决方法 在Windows系统中,如果发现 `cmake --version` 和 CMake-GUI 的版本不一致,可能由以下原因引起: 1. **不同安装源导致的版本差异** 如果系统中存在多个 CMake 安装实例,例如通过独立安装程序安装的 CMake 和通过其他工具(如 Chocolatey、Scoop 或 Anaconda)安装的 CMake,可能会导致命令行版本和 GUI 版本不一致[^1]。 2. **环境变量配置问题** 在安装过程中,如果选择了自动添加环境变量,但未正确重启系统或终端,可能导致命令行调用的 CMake 版本与实际安装的版本不一致。此外,如果手动修改了环境变量路径,也可能导致调用不同的 CMake 实例[^1]。 3. **缓存或历史残留** 系统中可能存在旧版本的 CMake 安装文件或残留配置,这些文件可能干扰当前版本的识别和使用[^2]。 #### 解决方法 以下是同步 CMake 命令行版本与 CMake-GUI 版本的方法: 1. **检查已安装的 CMake 版本** 打开 PowerShell 或命令提示符,输入以下命令以确认当前使用的 CMake 版本: ```powershell cmake --version ``` 同时,启动 CMake-GUI 并查看其标题栏或帮助菜单中的版本信息,对比两者的版本号是否一致[^1]。 2. **清理旧版本残留** 如果发现系统中存在多个 CMake 安装实例,建议卸载所有旧版本,并确保删除相关的残留文件和注册表项。可以通过以下步骤执行: - 卸载旧版本:进入控制面板 > 程序和功能,查找并卸载 CMake- 删除残留文件:检查并删除以下路径中的旧版本文件夹(如果存在): - `C:\Program Files\CMake` - `C:\Program Files (x86)\CMake` - 清理环境变量:打开系统属性 > 高级 > 环境变量,检查 `PATH` 中是否有指向旧版本 CMake 的路径,并将其移除。 3. **重新安装最新版本** 访问 [CMake 官方网站](https://cmake.org/download/) 下载最新的 Windows 安装程序。运行安装程序时,确保选择“Add CMake to the system PATH”选项以自动配置环境变量。安装完成后,重启系统以确保新版本生效[^2]。 4. **验证安装** 重新启动 PowerShell 或命令提示符,输入以下命令验证版本一致性: ```powershell cmake --version ``` 同时启动 CMake-GUI,检查其版本信息是否与命令行一致[^1]。 5. **配置环境变量(可选)** 如果仍然存在版本不一致的问题,可以手动调整环境变量,确保 `PATH` 中优先指向最新版本的 CMake 可执行文件路径。例如: - 添加路径:`C:\Program Files\CMake\bin` - 确保该路径位于其他可能包含旧版本 CMake 的路径之前[^1]。 #### 注意事项 - 如果需要频繁切换不同版本的 CMake,可以考虑使用虚拟环境管理工具(如 Conda)来隔离不同版本的依赖[^4]。 - 在重新安装或配置过程中,务必备份重要数据,以防误删关键文件。 ```python # 示例代码:验证 CMake 版本一致性 import subprocess def check_cmake_version(): try: version_info = subprocess.check_output(['cmake', '--version']).decode('utf-8') print("CMake Command Line Version:", version_info.splitlines()[0]) except FileNotFoundError: print("CMake is not installed or not in PATH.") check_cmake_version() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值