【CMake】所见所闻所学

Note: 本贴仅记录遇到的CMake的问题,以问题为驱动。

- cmake_minimum_required

- project

- add_executable

- target_include_directories

- ExternalProject_Add

ExternalProject_Add 是 CMake 中用于管理和构建外部项目的模块。通过 ExternalProject_Add,可以在 CMake 项目中包含、构建和安装外部项目,而无需手动下载和管理这些外部项目。

以下是一个简单的示例,展示如何在 CMake 项目中使用 ExternalProject_Add 来管理外部项目:

复制代码
include(ExternalProject)

ExternalProject_Add(
    my_external_project
    PREFIX ${CMAKE_BINARY_DIR}/external
    GIT_REPOSITORY https://github.com/example/my_external_project.git
    GIT_TAG master
    UPDATE_COMMAND ""
    INSTALL_COMMAND ""
)

add_executable(MyExecutable main.cpp)

add_dependencies(MyExecutable my_external_project)

target_link_libraries(MyExecutable PUBLIC ${CMAKE_BINARY_DIR}/external-prefix/src/my_external_project/lib/libmy_external_project.a)

在这个示例中:

  • 使用 ExternalProject_Add 添加了一个名为my_external_project的外部项目。
  • 通过指定 GIT_REPOSITORYGIT_TAG 来指定外部项目的Git仓库地址和分支。
  • UPDATE_COMMANDINSTALL_COMMAND为空,因为我们不需要执行更新或安装命令。
  • 创建了一个可执行文件MyExecutable,并添加了对外部项目的依赖。
  • 使用 target_link_libraries 将外部项目的库链接到可执行文件中。
相关推荐
草莓熊Lotso11 分钟前
C++ 抽象类与多态原理深度解析:从纯虚函数到虚表机制(附高频面试题)
java·运维·服务器·开发语言·c++·人工智能·笔记
Rock_yzh14 分钟前
LeetCode算法刷题——49. 字母异位词分组
数据结构·c++·学习·算法·leetcode·职场和发展·哈希算法
小欣加油15 分钟前
leetcode 2654 使数组所有元素变成1的最少操作次数
数据结构·c++·算法·leetcode·职场和发展
_F_y35 分钟前
C++11拓展语法
c++
_OP_CHEN43 分钟前
从零开始的Qt开发指南:(三)信号与槽的概念与使用
开发语言·c++·qt·前端开发·qt creator·信号与槽·gui开发
乄夜43 分钟前
嵌入式面试高频!!!C语言(十四) STL(嵌入式八股文)
c语言·c++·stm32·单片机·mcu·面试·51单片机
草莓熊Lotso1 小时前
《算法闯关指南:优选算法--位运算》--38.消失的两个数字
服务器·c++·算法·1024程序员节
Molesidy8 小时前
【VSCode】【Clangd】Win下的基于LLVM/Clangd+Clangd插件+MINGW+CMake的VSCode配置C/C++开发环境的详细教程
c++·ide·vscode·clangd·llvm
Mr_WangAndy10 小时前
C++_chapter13_C++并发与多线程_多线程概念,死锁,unique_lock(),lock_guard()使用
c++·lock·死锁·并发与多线程·unlock·lock_guard·unique_lock
小欣加油10 小时前
leetcode 946 验证栈序列
c++·算法·leetcode·职场和发展