1.路径

_mkdir(ROOT_DIR "/data/");

if (NOT ROOT_DIR_DEFINED)
    add_definitions(-DROOT_DIR="${PROJECT_SOURCE_DIR}")
    set(ROOT_DIR_DEFINED ON)
endif()

if (NOT ROOT_DIR_DEFINED)
    set(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
    if (ARM) 
        add_definitions(-DROOT_DIR="./")
    else()
        add_definitions(-DROOT_DIR="${PROJECT_SOURCE_DIR}")
    endif()
    set(ROOT_DIR_DEFINED ON)
endif()

多个源文件工程编译

cmake_minimum_required(VERSION 3.5)project(ssca)set(CMAKE_CXX_STANDARD 14)set(WINDOWS TRUE CACHE INTERNAL "")
set(PLATFORM_PREFIX "win64" CACHE INTERNAL "")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)set(OpenCV_STATIC ON)
set(OpenCV_DIR D:/thirdparty/build/install/win64)find_package(OpenCV REQUIRED)FILE(GLOB_RECURSE src_SRC_LIST "src/*.cpp src/*.h")
FILE(GLOB_RECURSE CAFilter_SRC_LIST "CAFilter/*.cpp CAFilter/*.h")
FILE(GLOB_RECURSE CANLC_SRC_LIST "CANLC/*.cpp CANLC/*.h")
FILE(GLOB_RECURSE CAST_SRC_LIST "CAST/*.cpp CAST/*.h")
FILE(GLOB_RECURSE CC_SRC_LIST "CC/*.cpp CC/*.h")
FILE(GLOB_RECURSE PPSG_SRC_LIST "PPSG/*.cpp PSG/*.h")
FILE(GLOB_RECURSE PPWM_SRC_LIST "PPWM/*.cpp PPWM/*.h")add_executable(ssca main.cpp ${src_SRC_LIST} ${CAFilter_SRC_LIST} ${CANLC_SRC_LIST} ${CAST_SRC_LIST} ${CC_SRC_LIST} ${PPSG_SRC_LIST} ${PPWM_SRC_LIST})
target_link_libraries(ssca   ${OpenCV_LIBS})

3.多个编译子文件家

add_subdirectory(sample/image_cv_gpumat)

4 .switch:

option(ENABLE_REALSENSE "Build with xxx" OFF)

if (ENABLE_REALSENSE)
    add_definitions(-DENABLE_REALSENSE)
    add_subdirectory(common)
endif()

cmake 学习笔记相关推荐

  1. cmake 学习笔记(三) (转)

    接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cmake 的使用. 学习一下cmake的 finder. finder是神马东西? 当编译一个需要使用第三方库的软件时,我 ...

  2. CMake 学习笔记 02 - 更复杂的项目

    CMake 学习笔记 02 - 更复杂的项目 源代码见 https://github.com/fengyc/cmake-tutorial 源代码目录组织 一般的项目,会划分为多个子目录,每个子目录中包 ...

  3. cmake学习笔记(七)编写自己的xxxConfig.cmake

    cmake学习笔记(七)编写自己的xxxConfig.cmake 1. onnxruntimeConfig.cmake 2. 进阶版onnxruntimeConfig.cmake 1. onnxrun ...

  4. cmake学习笔记(五)

    cmake学习笔记(五) 添加系统检测 检测代码环境中是否存在某些库文件,在MathFunctions/CMakeLisits.txt添加如下代码: include(CheckSymbolExists ...

  5. CMake学习笔记(一)——CMake官网教程

    CMake学习笔记(一)--CMake官网教程 前言: 经历了一星期痛苦的交叉编译,笔者深刻认知到Linux下make的重要性.所以准备放缓两三天自己的工作进度,并学习一下CMake与Makefile ...

  6. cmake学习笔记--cmake的打印、创建工程等基本操作(1)

    最近项目代码重构切换到了cmake的编译环境下. 有幸学习了一下cmake的一些基本的操作,记录一下. 0 . 创建一个工程 0.0 指明工程需要的cmake的最低版本(或者是最低到最高) cmake ...

  7. cmake 学习笔记(一)

    最大的Qt4程序群(KDE4)采用cmake作为构建系统 Qt4的python绑定(pyside)采用了cmake作为构建系统 开源的图像处理库 opencv 采用cmake 作为构建系统 ... 看 ...

  8. cmake 学习笔记(四)

    接前面的一二三,学习一下 CMakeCache.txt 相关的东西. CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). ...

  9. cmake学习笔记之add_library、target_link_libraries和link_directories

    cmake是Linux(这里默认是Ubuntu系统)下常使用的编译C++的工具,而使用cmake就需要先在CmakeLists.txt文件中对编译规则进行.这里介绍常用的三种指令add_library ...

  10. cmake 学习笔记之相对路径编译动态链接库

    相对路径编译动态链接库 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 在学习CMake的过程中在想要编译相对路径的动态链接库时碰到了一大堆问题,特此记录下来. 第一步是编译出动态链接 ...

最新文章

  1. Dataset:(公交车、恐龙、大象、花朵、骏马)六类图片数据集(AutoKeras测试)的简介、下载、使用方法之详细攻略
  2. Python列表、元组
  3. Deep Learning for Content-Based Image Retrival:A Comprehensive Study 论文笔记
  4. linux监控进程挂死,linux系统下实时监控进程以及定位杀死挂起的进程
  5. 小米手机怎么删除桌面计算机,手机桌面图标怎么删除,小米手机怎样删除桌面图标-...
  6. 计算机一级pdf百度云,计算机一级(实操).pdf
  7. vue.js中使用甘特图(gantt-elastic)的使用
  8. 怎么克隆计算机的mac,选中克隆为当前电脑MAC地址
  9. UML图 | 让你快速学会使用 Visio 绘制时序图(顺序、序列),再也不用担心文档画图问题啦!!
  10. 一份来自蚂蚁金服大佬的数据库设计总结(纯干货)
  11. dB、dBm、dBc等概念的解释
  12. Linux文件操作命令及磁盘分区与文件系统
  13. 高等数学(第七版)同济大学 习题12-7 个人解答
  14. 纯HTML+CSS 画奥运五环标志,我就是闲的
  15. C 语言 抽象语法树AST
  16. 万字长文回顾智能驾驶进化史
  17. 特斯拉无人驾驶最核心的人工智能算法,竟是强化学习
  18. mysql 的references_mysql中 主键、外键、references的用法
  19. 李永乐复习全书概率论与数理统计 第五、六章 大数定律和中心极限定理及数理统计的基本概念
  20. freeMarker生成静态html页面

热门文章

  1. java steam 去重_Java中对List去重, Stream去重
  2. Linux如何配置网络IP地址
  3. mysql中设置字符_MySQL中设置默认字符集的方法
  4. python tkinter库 密码实时显示_Python3 tkinter基础 Entry show textvariable 密码输入框
  5. java a星寻路算法_用简单直白的方式讲解A星寻路算法原理
  6. pythondistutils安装_python – 与distutils / pip一起安装Bash完成
  7. 基于fpga的dds函数信号发生器的设计_超声信号功率放大器驱动压电陶瓷测试
  8. arcgis xml 下载 切片_xml格式文件如何用arcgis进行编辑和更新
  9. linux进程管理子系统分析,linux进程管理子系统简要分析
  10. linux 修改块大小,linux 查看及修改os系统块的大小