示例(在编写CMakeLists.txt前, 创建好src, include, lib, bin, build目录, 其中cmake ..在build目录中执行)

# 一般都会先声明cmake的版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(hello_world)# Release 和 Debug
IF(NOT CMAKE_BUILD_TYPE)SET(CMAKE_BUILD_TYPE Release)ENDIF()# SET()用于赋值, 类似于 int a = 100
# SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)# AUX_SOURCE_DIRECTORY也是用于赋值, 只不过是特定于目录的
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_DIR)# 设置头文件路径
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include
)# 指明编译的文件, 创建可执行文件
ADD_EXECUTABLE(main ${SRC_DIR})# 在MakeFile文件中生成install伪目标指令
INSTALL(TARGETS main DESTINATION ${PROJECT_SOURCE_DIR}/bin)
INSTALL(FILES ${SRC_DIR} DESTINATION ${PROJECT_SOURCE_DIR}/share)# 指明编译的文件, 创建库,
ADD_LIBRARY(libname SHARED lib_source_files)# 添加库的查找目录
LINK_DIRECTORIES(/usr/local/lib)# 连接库文件
TARGET_LINK_LIBRARIES(main lib_name)# find_package命令, 让cmake自己找库
FIND_PACKAGE(OpenCV 3 REQUIRED)# 使用C++的版本
ADD\_DEFINATION(-std=c++)# 指明编译器
SET(CMAKE\_C\_COMPILER g++)
cmake等帮助
cmake --help-command-list 查看命令
cmake --help-variable-list 查看内置变量

OpenCV的配置

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(demo)SET(CMAKE_BUILD_TYPE Release)SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)# 放cmake自己找, 加载模块成功之后就会新增加一些变量, OpenCV_LIBS, OpenCV_INCLUDE_DIRS, OpenCV_LIBRARY_DIRS
FIND_PACKAGE(OpenCV 3.4.1 REQUIRED)INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
LINK_DIRECTORIES(${OpenCV_LIBRARY_DIRS})AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_DIR)
ADD_EXECUTABLE(main ${SRC_DIR})
# OpenCV比较特殊, 下载了V3的, 里面会有V2和V3多个版本在一个目录下, 通过OpenCV_LIBS明确是哪些库, 接着直接连接, 所以我们也不需要上面的LINK_DIRECTORIES
TARGET_LINK_LIBRARIES(main ${OpenCV_LIBS})INSTALL(TARGETS main DESTINATION ${PROJECT_SOURCE_DIR}/bin)

CMakeLists.txt相关推荐

  1. TVM示例展示 README.md,Makefile,CMakeLists.txt

    TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...

  2. CMakeLists.txt学习记录

    一.Cmake 学习地址与作用 cmake详细见:https://gitlab.kitware.com/cmake/community/-/wikis/home 是一个跨平台.开源的构建系统.它是一个 ...

  3. CMakeLists.txt从入门到精通

    文章目录 前言 一 一般工程开头的一些设置案例 二 动态库与静态库的生成 2.1 动态库 2.2 静态库 三 优化选项的设置 四 生成库时的设置 五 常见依赖库的调用 5.1 OpenCV库 六 设置 ...

  4. CMakeLists.txt文件如何编写?(一 基础篇)

    本文首发于微信公众号「3D视觉工坊」--CMakeLists.txt文件如何写? 本文以linux平台下CMakeLists.txt文件书写方法总结. 一 开头通用模块 1.1 cmake版本要求 c ...

  5. “cmake 点点”表示在上一级目录(CMakeLists.txt所在目录)编译

    CMake学习(一)_福尔摩斯帅双的博客-CSDN博客 在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下: 编写 CMake 配置文件 CMakeLists.txt . ...

  6. Qt导入CMakeLists.txt后无法调试

    问题: Qt导入CMakeLists.txt后无法单步调试 解决方法: 在CMakeLists.txt后加入一句: SET(CMAKE_BUILD_TYPE DEBUG) 转载于:https://ww ...

  7. CMakeLists.txt的运行方法

    在学习pcl的时候,包括在别的一些学习过程中,我们经常会遇到书中提供的一些源码,但是我们不知道怎么运行,就像下面的一些代码 之前一直使用的方法就是创建VS工程,把CPP文件包含进去,然后运行,但是既然 ...

  8. 多目录cmake工程 CmakeLists.txt编写

    实现类似于vs中工程的CMakeLists.txt的编写.功能为main.cpp调用hello.cpp 的hello()函数,world.cpp的world()函数.使用自动添加多目录下的文件 1.工 ...

  9. cmake 编译文件 CMakeLists.txt 语法介绍与实例演练

    一.Cmake 简介 cmake 是一个跨平台.开源的构建系统.它是一个集软件构建.测试.打包于一身的软件.它使用与平台和编译器独立的配置文件来对软件编译过程进行控制. 二.常用命令 1. 指定 cm ...

最新文章

  1. g++使用C++11编译源文件
  2. Linux 搭建golang开发环境
  3. java knn kd树_KNN算法之KD树(K-dimension Tree)实现 K近邻查询
  4. requirejs使用笔记
  5. 设计模式C#实现(十六)——中介者模式
  6. execve系统调用_Linux系统编程——进程替换:exec 函数族
  7. Android之NetworkOnMainThreadException异常
  8. Rectangles
  9. STM32启动代码概述
  10. 阻抗匹配(一):信号发生器
  11. STM32F107+LAN8720A使用STM32cubeMX配置网络连接+tcp主从机+UDP app
  12. 两个分数化简比怎么化_分数比化简比练习题及答案.doc
  13. 微信开放平台之第三方授权开发
  14. 【容器化部署简介】 基于腾讯云TKE: kubernetes(k8s), github actions, devops
  15. 关于:昨天H - 康托展开题目的探究。
  16. 【面朝大厂】面试官:你对MySQL中的索引了解多少?
  17. PTA 7-5 最佳情侣身高差
  18. SaaS模式、技术与案例详解——第18章 如何做得更好
  19. python修改Jenkins job的参数默认值
  20. 表单打印html代码,Html表格代码实现打印

热门文章

  1. gin框架长连接_gin框架教程一: go框架gin的基本使用
  2. 我们学习效率为什么这么低?CMU和PITT的科学家利用BCI技术对此做了相关研究
  3. java 项目保存日志到本地_Springboot项目使用Slf4j将日志保存到本地目录
  4. java 工厂模式 计算器_简单工厂模式实现简易计算器
  5. java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...
  6. 去年押中数字人爆发,今年看好什么?百度研究院2022十大科技趋势预测出炉
  7. 全套L4自动驾驶方案降至1万美元,RoboTaxi玩家的反击开始了
  8. 微软亲手盖上IE棺材板:明年6月停用,慢且不安全,还因垄断被罚款170亿
  9. 有人要在「动物森友会」上开AI学术会议,我看你们就是在家想玩游戏吧
  10. 马斯克明年送3人到太空站旅游:票价3.8亿,仅剩2席,手慢无