【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 将外部项目的库链接到可执行文件中。
相关推荐
兔兔兔兔11 小时前
记录C++ 8
开发语言·c++
脑子不好的小菜鸟2 小时前
秋招、实习 小知识点复习 (C/C++/Linux)—— 碎片时间可看
c++·求职招聘
charlie1145141913 小时前
深探std::vector:三指针、扩容与迭代器失效
开发语言·c++·开源项目
laplaya3 小时前
ROS常用消息之PointCloud2
c++
沙盘客4 小时前
典型应用与趋势:作战实验、AI 决策与数字孪生
c++·人工智能·经验分享
ShineWinsu5 小时前
对于 C++ :从 const、constexpr、auto、decltype 到 type_traits、SFINAE 与 Concepts的解析
c++
_Narcissus_5 小时前
B树概念及操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法
筠筠喵呜喵5 小时前
解决问题:QNX平台调用glReadPixels卡滞
c++·unix
_Narcissus_6 小时前
B+树的概念和操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法
aichitang20246 小时前
快乐泛函每一天!内积空间
c++·python·数学·算法·机器学习·ai·泛函分析