简介

CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。

“CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。

历史

CMake是为了解决美国国家医学图书馆出资的Visible Human Project专案下的Insight Segmentation and Registration Toolkit (ITK) 软件的跨平台建构的需求而创造出来的,其设计受到了Ken Martin开发的pcmaker所影响。pcmaker当初则是为了支持Visualization Toolkit这个开放源代码的三维图形和视觉系统才出现的,VTK也采用了CMake。在设计CMake之时,Kitware公司的Bill Hoffman采用了pcmaker的一些重要想法,加上更多他自己的点子,想把GNU建构系统的一些功能整合进来。CMake最初的实作是在2000年中作的,在2001年初有了急速的进展,许多改良是来自其他把CMake整合到自己的系统中的开发者,比方说,采用CMake作为建构环境的VXL社群就贡献了很多重要的功能,Brad King为了支持CABLE和GCC-XML这套自动包装工具也加了几项功能,奇异公司的研发部门则用在内部的测试系统DART,还有一些功能是为了让VTK可以过渡到CMake和支持(“美国Los Alamos国家实验室”&“洛斯阿拉莫斯国家实验室”)的

cmake之TEST与TEST_F用法(五)相关推荐

  1. Python爬虫利器之Beautiful Soup的全世界最强用法 五百行文章!

    0. 前言 爬虫是一个非常有意思的东西,比如自己做的一个网页上面什么数据都没有就可以爬虫别人的 然后进行去重 数据分析等等 在这里因为爬虫涉及到的方面非常多 1. Beautiful Soup的简介 ...

  2. Linux下dislocate命令用法,五个超酷Linux命令

    1.kibitz:交互对话-屏幕同时显示(师徒对话)(要求安装expect工具) kibitz是一个终端工具,它主要用于让一个"师父(master)"来帮助他/她的"徒弟 ...

  3. Glib2之dbus用法(五)

    1.安装所需库  # sudo apt install libdbus-glib-1-dev libdbus-1-dev libglib2.0-dev 2.send_signal.c  #includ ...

  4. Git之git commit --amend两种用法(五)

    一.如果已经push到远端服务器,想修改已经提交过的commit信息 1.保存:Ctrl + o; 回车 ;退出:Ctrl + x # git commit --amend 2.重新提交gerrit审 ...

  5. CMake中include指令用法介绍

    转载于:  https://blog.csdn.net/liitdar/article/details/81144461 本文主要介绍CMake中include指令的用法. 1 概述 引用CMake官 ...

  6. Vue进阶(四十五):精解 ES6 Promise 用法

    文章目录 一.前言 二.链式操作用法 三.reject 用法 四.catch 用法 五.all 用法 六.race 用法 七.总结 八.拓展阅读 一.前言 复杂难懂概念先不讲,我们先简单粗暴地把Pro ...

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

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

  8. 【BAT】for命令用法

    文章目录 前言 一.for循环普通用法 1.1.介绍 1.2.用法 二.for /d 用法 三.for /r 用法 四.for /l 用法 五.for /f 用法 5.1.介绍 5.2.for /f ...

  9. 关于OpenCV中常见函数用法总结

    关于OpenCV中常见函数用法总结 一 一般Mat的赋值操作 二 求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则 ...

最新文章

  1. 小白如何购买阿里云服务器(图文教程)?
  2. Axure RP 第一部分
  3. 产品经理_(pm)—原型设计软件_Axure 9_axure rp pro 9.0中文破解版安装
  4. 桌面虚拟化最佳实践4—存储规划(下)
  5. Play! Framework 系列(三):依赖注入
  6. Nginx多站点虚拟主机实现单独启动停止php-fpm、单独控制权限设置
  7. (精)DEVC++的几个实用小技巧
  8. USACO-Section1.2 Friday the Thirteenth (简单日期处理)
  9. Dedecms v5.7 CKEditor编辑器回车键换行改为分段
  10. java分布式集群框架_Cacheonix——Java的分布式集群缓存框架
  11. Houdini地形与流体解算(模拟泥石流)
  12. 把人工智能体验做到极致,微软深挖人工情感的商机
  13. Mysql数据库锁与隔离级别
  14. 人工智能与就业系列调研 | 老板电器的新蝶变
  15. matlab中holdon的用法图解,Holdon有多少种用法?-hold on-英语-雷颇磺同学
  16. 公网访问阿里云RDS云数据库
  17. Spring Boot项目 Spring Configuration Check Unmapped Spring configuration files found
  18. VS 制作自定义安装程序
  19. 怎么用notepad将html格式化,Notepad++如何使用Tidy2格式化HTML文档?
  20. uCOSIII移植stm32c8t6

热门文章

  1. mysql并发replace死锁
  2. QT Creator 环境使用 remote debug 调试 arm 程序
  3. PHP-Yii执行流程分析(源码)
  4. Catalyst 65xx系列交换机配置(Native IOS)
  5. 前端可视化开发-编辑器
  6. OpenJDK 14 与 OpenJDK 8 及多个主要版本的性能基准测试对比
  7. 27款实用高效的腾讯热门开源项目推荐
  8. Matlab中插值函数使用
  9. 执行conda install tensorflow solving environment一直转圈圈,Anaconda无法打开的问题
  10. webstorm如何自定义代码模板