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

CMake-官方教程(2)-添加库-Adding a Library

Adding a Library

文章目录

  • Adding a Library
    • 创建库
    • 选项控制是否链接库

创建库

指定源文件来构建库

add_library(MathFunctions mysqrt.cxx)

在上层CMakeLists.txt使用add_subdirectory添加子目录来构建子模块,子目录中同样编写CMakeLists.txt来管理
为目标添加包含目录,其中${PROJECT_SOURCE_DIR}表示当前CMakeLists.txt所在的目录,${PROJECT_BINARY_DIR}表示cmake构建目录

target_include_directories(Tutorial PUBLIC
                           "${PROJECT_BINARY_DIR}"
                           "${PROJECT_SOURCE_DIR}/MathFunctions"
                           )

为目标添加链接的库

target_link_libraries(Tutorial PUBLIC MathFunctions)

选项控制是否链接库

  1. 添加选项
option(USE_MYMATH "Use tutorial provided math implementation" ON)
  1. CMakeLists中根据选项值执行相关指令
if (USE_MYMATH)
  add_subdirectory(MathFunctions)
  list(APPEND EXTRA_LIBS MathFunctions)
  list(APPEND EXTRA_INCLUDES "${PROJECT_SOURCE_DIR}/MathFunctions")
endif()

list命令含义是添加MathFunctions到名字为EXTRA_LIBS的列表中,引用list的方式如下

target_link_libraries(Tutorial PUBLIC ${EXTRA_LIBS})
target_include_directories(Tutorial PUBLIC
                           "${PROJECT_BINARY_DIR}"
                           ${EXTRA_INCLUDES}
                           )
  1. 在TutorialConfig.h.in中添加#cmakedefine USE_MYMATH,当选项为ON则定义宏,OFF则不定义。注意configure命令应该在option命令之后,因为.in文件中使用到了option定义的USE_MATH变量,否则变量值不确定
  2. 在源文件中使用#ifdef USE_MYMATH ... #else .. #endif来控制头文件引入和调用函数
  3. 使用cmake命令时,控制USE_MYMATH的值
cmake ../Step2 -DUSE_MYMATH=OFF

相关文章:

  • 关于网站开发费用的入账/百度电商平台app
  • 手机设计免费软件/关键词智能优化排名
  • 网站设计制作开发/百度网盘app手机版
  • 磐石网站建设/品牌推广网络公司
  • 公司展示网站费用/产品宣传
  • wordpress 侧边栏浮动/搜狗网站收录
  • 圣诞 HTML 代码汇总
  • jQuery 查找方法
  • [Java实战]Squaretest单元测试生成利器...一天生成所有简单单元测试...[新手开箱可用]
  • SAP UI5 Smart Table 和 Smart Filter Bar 的联合使用方法介绍试读版
  • tensorflow 基本概念和基本操作
  • 基于Python+Echarts+Pandas 搭建一套图书分析大屏展示系统(附源码)
  • 洞察市场需求,深耕大健康赛道,缤跃酒店打造一站式运动酒店品牌
  • TCP半关闭状态分析和skynet对半关闭状态的支持
  • 第三章:远程登陆Linux系统-[实操篇]
  • 科研人快速入门LaTex到日常使用,下载安装配置,语法使用说明等
  • 二叉树9:二叉树的最大深度
  • CAP定理通俗理解