【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 将外部项目的库链接到可执行文件中。
相关推荐
愈努力俞幸运1 小时前
c++ 头文件
开发语言·c++
~山有木兮1 小时前
C++设计模式 - 单例模式
c++·单例模式·设计模式
十五年专注C++开发1 小时前
CMake基础:gcc/g++编译选项详解
开发语言·c++·gcc·g++
HUN金克斯2 小时前
C++/C函数
c语言·开发语言·c++
慢半拍iii2 小时前
数据结构——F/图
c语言·开发语言·数据结构·c++
iceslime2 小时前
旅行商问题(TSP)的 C++ 动态规划解法教学攻略
数据结构·c++·算法·算法设计与分析
虾球xz3 小时前
CppCon 2015 学习:3D Face Tracking and Reconstruction using Modern C++
开发语言·c++·学习·3d
small_wh1te_coder3 小时前
c语言超详细知识点总结 1500行手写源码 持续更新中ing 从25年5月到6月5日
c++·c
SteveDraw5 小时前
C++动态链接库封装,供C#/C++ 等编程语言使用——C++动态链接库概述(总)
开发语言·c++·c#·封装·动态链接库
十五年专注C++开发5 小时前
设计模式之单例模式(二): 心得体会
开发语言·c++·单例模式·设计模式