cmake是什么

小嘿 QA 2020-04-14 11:21:41 阅读(...)

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

CMake 是一个跨平台安装编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的 makefile 或者 project 文件,能测试编译器所支持的 C++特性,类似 UNIX 下的 automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

cmake是什么

定义

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 国家实验室”&“洛斯阿拉莫斯国家实验室”)的 Advanced Computing Lab 的平行视觉系统 ParaView 而加的。

组态档

组态档是用一种建构软件专用的特殊编程语言写的 CMake 脚本。

内建 C 语言、C++、Fortran、Java 的自动相依性分析功能。

经由 CMake 脚本语言支持 SWIG、Qt、FLTK。

内建对微软 Visual Studio .NET 和过去的 Visual Studio 版本的支持,可以产生后缀为.dsp、.sln 和.vcproj 的文档。

用传统的时间标签侦测档案内容的改变。

支持平行建构(在多台电脑上同时建构)

在许多操作系统上进行跨平台编译,包括 Linux、POSIX 相容的系统(AIX、*BSD、HP-UX、IRIX、MinGW/MSYS、Solaris 系统)、Mac OS X 和微软 Windows 95/98/NT/2000/XP 等。

产生可以给 Graphviz 用的全局相依图。

已经和 Dart、CTest 和 CPack 等软件测试和释出的工具整合。

应用软件

Bullet Physics Engine

KDE (starting with version 4)

The Visualization Toolkit (VTK)

Insight Segmentation and Registration Toolkit (ITK)

ParaView

DevIL – Open Image Library

OpenSceneGraph

Scribus

Drishti

PvPGN

Chicken

ParadisEO

Quantum GIS

OPENCV

PCL

Fast Light Toolkit(FLTK)

MySql 5.58 版本以后

Clion

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • ssl 证书

    GmSSL是什么

    GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具。
  • OpenCV

    OpenCV是什么

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。
  • TensorFlow

    TensorFlow 是什么

    TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。当前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索。
  • C language C 语言

    c语言编译器有哪些

    C语言编译器有Dev-C++,只需要简单配置一下就能够在上面进行编写程序;vs code一款跨平台免费开源编辑器;Visual Studio插件扩展众多,支持单元测试、代码重构等高级功能,开发调试效率都非常高,大型项目开发经常会用这个软件。
  • Chromebook

    如何在Chromebook上安装Windows系统

    在 Chrome OS 的网络应用程序和 Android 应用程序之间,你可以在 chromebook 上做很多事情。然而,对于那些一直使用基于 windows 的产品的人来说,这可能不是一个平稳的过渡。你可能会错过 Windows 的一些功能。
  • 跨平台

    跨平台是什么

    跨平台是指计算机产品或系统是可以跨多种类型的平台或操作环境工作的产品或系统。不同类型的跨平台系统包括硬件和软件系统,以及涉及每个平台的单独构建的系统,以及旨在跨多个平台以相同方式工作的其他更广泛的系统。