简介

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之系统头文件(六)相关推荐

  1. c++语言程序设计——头文件和引用系统头文件、用户头文件的定义及使用方法

    文章目录 头文件 引用头文件 1.引用系统头文件 2.引用用户头文件 实例 注意 结语 头文件 头文件是拓展名为.h的文件,其包含了函数的声明和宏定义,它可以被多个源文件引用共享.头文件分为两种类型: ...

  2. STM32系统头文件之数据类型定义u8 u16哪里来的

    初学STM32编程时,经常见到数据类型定义的符号:u8.u16等,51都是自己定义数据类型的简写符号,STM32是哪里定义的呢?今天没事就看了看系统头文件,数据类型的定义在其中的3个头文件里: (1) ...

  3. android studio ndk 引入系统头文件时出现红色波浪线

    我的解决方法: 原先目录名称为libs,修改目录名称为lib后,在CMakeLists.txt中执行Sync Now后,引入的系统头文件的红色波浪线消失,代码出现提示. 新情况 如果只创建一个.h头文 ...

  4. Linux下C语言的系统头文件

    Linux菜鸟初看Linux下编程的糗事. 前段时间琢磨着接触一下Linux下的C语言编程,就找了本书看.看到很多文件操作的程序要包含"sys/stat.h". 写程序前,我想先找 ...

  5. vs2017中编译提示一些系统头文件没有找到

    只需要设置"项目"->"属性" 设置为正确的SDK版本即可

  6. vscode中找不到系统头文件 定义的问题

    操作系统:centos7 自带的编译器:gcc4.8.5,我安装了编译器:gcc11.2.1 打开zookepeer-client-c项目的时候出现这样的问题: 这几个定义在netdb.h中的宏和结构 ...

  7. cmake 头文件 库文件 路径搜索 CMAKE_INCLUDE_PATH CMAKE_LIBRARY_PATH

    目录 cmake中定义搜索路径 修改环境变量增加搜索路径 FIND 系列指令,通过FIND寻找路径并进行添加 大型开源库路径添加方式 find_package采用两种模式搜索库 路径搜索,这里介绍头文 ...

  8. linux下mkdir头文件_Linux部分常用命令学习记录

    Linux部分常用命令 ls 显示目标列表 ls -a 显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出): ls -l 以长格式显示目录下的内容列表.输 ...

  9. c++ include 路径_头文件中,#include使用引号“”和尖括号lt;gt;有什么区别?

    很多程序员写代码,可能没有仔细研究一些细节问题,比如今天说的#include相关的内容. 01 关于#include 首先,#include为预处理语句,那么什么是预处理语句呢?预处理语句最明显的标志 ...

最新文章

  1. Java项目:家教管理系统(java+SSM+MyBatis+MySQL+Maven+Jsp)
  2. 用iptable简单的给web服务器做安全
  3. [转]PageRank算法
  4. 马来西亚国立大学的计算机,要拿到马来西亚国立大学的 offer难吗?
  5. Maven内置属性及使用
  6. FIFO分枝_限界算法
  7. JAVA记录-Servlet介绍
  8. Yii2 认证实现原理和示例
  9. 类似QQ下拉出现搜索
  10. readline函数重新定位到第一行_学习MATCH函数3种匹配方式,轻松确定数据位置和数量...
  11. 阅读html查看器,手机HTML查看器
  12. Invalid url-pattern /admin/*.jsp in filter mapping
  13. 如何把pdf转换成word文档?
  14. vue使用高德地图web端JSAPI 路线规划、搜索提示教程
  15. 终面(hr)可能的问题及回答(Java岗--自用)
  16. [256个管理学理论]003.鳄鱼法则(Alligator Principle)
  17. 最短路径(迪杰斯特拉、弗洛伊德含代码)
  18. wchar_t 转换 string std::string 转换 wchar_t
  19. diag矩阵(Diag矩阵计算公式)
  20. iOS-自己定义键盘选择器

热门文章

  1. Flutter获取assets中的图像
  2. 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost...
  3. Oracle database sqldeveloper study(1)
  4. python学习笔记之——装饰器及对象
  5. GitHub上最流行的10000个Java都使用了哪些库?
  6. 【祈福】一句话让你的网页为灾区祈福(让网页变灰色)
  7. 利用jsoup 如何从网页中下载图片
  8. 开源软件的商业化策略模型
  9. 【机器人】关键问题:动捕原点坐标系到机械臂基坐标系的转换
  10. 一个大神的文章如何在没有OPENCV的电脑上跑你的程序调用的opencv程序