IF(COMPILE_WITH_OHDSVM)MESSAGE("Compiling with: OHD-SVM")ADD_DEFINITIONS(-DCOMPILE_WITH_OHDSVM)ADD_SUBDIRECTORY(OHD-SVM)LIST(APPEND SRC ohdSVM_wrapper.h ohdSVM_wrapper.cpp)
ENDIF()

1.ADD_SUBDIRECTORY

该命令是添加一个子目录并构建该子目录,命令格式为

add_subdirectory (source_dir [binary_dir] [EXCLUDE_FROM_ALL])

source_dir
必选参数。该参数指定一个子目录,子目录下应该包含CMakeLists.txt文件和代码文件。子目录可以是相对路径也可以是绝对路径,如果是相对路径,则是相对当前目录的一个相对路径。
binary_dir
可选参数。该参数指定一个目录,用于存放输出文件。可以是相对路径也可以是绝对路径,如果是相对路径,则是相对当前输出目录的一个相对路径。如果该参数没有指定,则默认的输出目录使用source_dir。
EXCLUDE_FROM_ALL
可选参数。当指定了该参数,则子目录下的目标不会被父目录下的目标文件包含进去,父目录的CMakeLists.txt不会构建子目录的目标文件,必须在子目录下显式去构建。例外情况:当父目录的目标依赖于子目录的目标,则子目录的目标仍然会被构建出来以满足依赖关系(例如使用了target_link_libraries)。

ADD_DEFINITIONS(-DCOMPILE_WITH_OHDSVM)

add_definitions(-DFOO -DBAR ...)

参数为向 C/C++编译器添加-D 定义
这种可以在我们更改别人代码做实验时使用,既不对其源码进行破坏,又可以添加自己的功能。之前都是在程序中进行#define,有了这个后可以直接在编译的时候进行选择。具体的,在工程CMakeLists.txt 中,使用add_definitions()函数控制代码的开启和关闭:

target_link_libraries

target_link_libraries(<target> ... <item>... ...)

指定链接给定目标和/或其依赖项时要使用的库。命名的<目标>必须是由add_executable()或add_library()之类的命令创建的,并且不能是ALIAS目标。

Cmake 命令语句(一)相关推荐

  1. CMake命令大全——CMake构建系统的骨架

    转自:http://www.cnblogs.com/coderfenghc/archive/2012/06/16/CMake_ch_01.html#2996205) CMD#1: add_custom ...

  2. 【Cmake】执行cmake命令时报错:No XSLT processor found

    一.问题描述 在ubuntu中,在生成Doc(文档)中,执行cmake命令时报错:No XSLT processor found 二.原因查找 google该错误信息,原因是确实ubuntu中没有安装 ...

  3. 【CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用的 CMake 命令解析 )

    文章目录 一.Android Studio 中使用 CMake 编译单个 C++ 源文件 二.cmake_minimum_required 命令设置最小 CMake 版本 三.project 命令设置 ...

  4. 【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

    文章目录 一.Android NDK 构建脚本 二.CMake 构建脚本示例 三.CMake 命令手册 1.CMake 脚本命令 2.CMake 工程命令 该系列博客的应用场景是 Android St ...

  5. linux下cmake命令行,深入理解CMake(1): CMake命令行参数

    初衷 CMake能用来编写跨平台(cross-platform)的构建规则,通过这些规则来调用各个平台的编译器.链接器,生成各个目标(静态库,静态库,或者可执行). 我第一个接触的大型C++项目是Op ...

  6. Database之SQLSever:SQLSever数据库管理学习并深入理解SQL命令语句进阶综合篇《初级→中级→高级》(持续更新,建议收藏)

    Database之SQLSever:SQLSever数据库管理学习并深入理解SQL命令语句进阶综合篇<初级→中级→高级>(持续更新,建议收藏) 目录 SQLSever数据库管理学习并深入理 ...

  7. 启明云端分享| ESP32-S3支持自定义离线语音,可支持 200 条本地命令语句,无需外加 DSP 芯片

    提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考.同时也用 ...

  8. Qt CMake命令参考

    Qt CMake命令参考 CMake命令参考 Qt5 :: Core Qt5 :: DBus Qt5 :: Linguist工具 Qt5 :: RemoteObjects Qt5 :: Widgets ...

  9. Linux系统下MySQL的导入数据的命令语句Load Data InFile的用法详解

    文章目录 语法格式 LOW_PRIORITY CONCURRENT LOCAL REPLACE 或 IGNORE PARTITION CHARACTER SET 对导入文件的字段进行格式描述 指定行的 ...

最新文章

  1. TCP和UDP 粘包 消息保护边界
  2. 万物互联的千亿级通信云市场,开发者机会在哪里
  3. Django之ORM使用以及模板语言
  4. 量子计算机与新型传感器,新型量子传感器为超导量子计算机发展开辟了新路径...
  5. 接受的token无法改变_基于BCH的新Token方案SLP的原理与应用
  6. Android2017 这些技术 —— 你都了解过吗
  7. VO(DTO)模式在架构设计中是否需要
  8. 苹果iOS 13概念曝光 音量UI大改鼠标即时配对
  9. 【python】函数的定义与操作
  10. 【MySQL】事务隔离级别
  11. 【BZOJ4149】[AMPPZ2014]Global Warming 单调栈+RMQ+二分
  12. 闭关修炼了5个月的源码,终于拿到蚂蚁金服Offer
  13. ArcGIS栅格数据批量转换格式
  14. [BZOJ] 1639: [Usaco2007 Mar]Monthly Expense 月度开支
  15. Android RabbitMQ使用之RabbitMQ安装及配置
  16. C语言数字转扑克牌字符,C语言编程:扑克牌魔术
  17. win10搭建网络代理,供Linux使用
  18. android关机动画
  19. 与小米一起“星辰大海,云端漫步”
  20. 基于Java毕业设计疫情期间物资分派管理系统源码+系统+mysql+lw文档+部署软件

热门文章

  1. 物联网设备数据流转之搭建前端服务框架:Vue3.0, ElementPlus, Axios, Echarts
  2. 仿真软件测试基尔霍夫定律,基尔霍夫定律教案.doc
  3. 开放平台API接口加密,签名策略
  4. 在Linux中运行Nancy应用程序
  5. 小花梨的三角形--美登杯
  6. 凤姐模仿Lady Gaga 称和国外明星平起平坐(图)
  7. 信息技术服务标准(ITSS)
  8. LSP简介(LSP--Liskov Substitution Principle)
  9. pap认证失败_PAP 认证
  10. Unity 给手游用的高性能辉光(Bloom) Shader