王朝百科
分享
 
 
 

cmake

王朝百科·作者佚名  2010-02-23  
宽屏版  字体: |||超大  

CMake 是个跨平台的自动化建构系统,它用组态档控制建构过程(build process)的方式和 Unix 的 Make 相似,只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。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

Insight Segmentation and Registration Toolkit

ParaView

DevIL - Open Image Library

OpenSceneGraph

Scribus

Drishti

PvPGN

Chicken

ParadisEO

Quantum GIS

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有