当前位置: 首页 > news >正文

【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 将外部项目的库链接到可执行文件中。

相关文章:

  • Java中的面向对象编程有三个重要的属性:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)
  • Go语言实现SSE中转demo
  • 应急响应靶机训练-Web3题解
  • Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问
  • 面试笔记——MySQL(优化篇:定位慢查询、SQL执行计划、索引、SQL优化)
  • go的限流
  • 【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT
  • 数据库迁移测试
  • 电商平台客户反馈的数据分析与应用
  • Window全网解析网站下载视频
  • macOS访问samba文件夹的正确姿势,在哪里更改“macOS的连接身份“?还真不好找!
  • 24. UE5 RPG制作属性面板(二)
  • Fire Smoke - Dynamic Nature
  • HTTPS:原理、使用方法及安全威胁
  • DNS服务器的分布式架构和集中式架构的区别
  • 上位机图像处理和嵌入式模块部署(qmacvisual之ROI设定)
  • 手撕算法-接雨水
  • C语言字符教组占⽤内存怎样算?
  • 海外媒体宣发:十大国外中文网站-大舍传媒
  • 【短接笔记本或者台式机的CMOS针脚解决电脑开机无法启动BIOS无法进入问题】
  • 春秋航空:如果供应链持续改善、油价回落到合理水平,公司补充运力的需求将会增长
  • 央行:当前我国债券市场定价效率、机构债券投资交易和风险管理能力仍有待提升
  • 红场阅兵即将开始!中国人民解放军仪仗队亮相
  • 丰田汽车:美国关税或导致4、5月损失1800亿日元,新财年净利润下滑三成
  • 教育部、国家发改委联合启动实施教师教育能力提升工程
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只