<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=CMake</id>
	<title>CMake - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=CMake"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=CMake&amp;action=history"/>
	<updated>2026-07-06T06:39:24Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=CMake&amp;diff=344785&amp;oldid=prev</id>
		<title>imported&gt;LLnnn252 来自 2023年12月8日 (五) 14:37</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=CMake&amp;diff=344785&amp;oldid=prev"/>
		<updated>2023-12-08T14:37:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteta&lt;br /&gt;
|G1=IT&lt;br /&gt;
|G2=FL&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox_Software&lt;br /&gt;
| logo = Cmake.svg&lt;br /&gt;
| logo_size = 75px&lt;br /&gt;
| name = CMake&lt;br /&gt;
| developer = [[Andy Cedilnik]], Bill Hoffman, Brad King, [[Ken Martin]], Alexander Neundorf&lt;br /&gt;
| latest_release_version = 3.25.1&lt;br /&gt;
| latest_release_date = {{Release date and age|2022|11|30}}&lt;br /&gt;
| latest_preview_version = 3.25.0-rc4&lt;br /&gt;
| latest_preview_date = {{Release date and age|2022|11|08}}&lt;br /&gt;
| operating_system = [[跨平台]]&lt;br /&gt;
| genre = [[軟體開發工具]]&lt;br /&gt;
| license = 3句版[[BSD許可證]]&lt;br /&gt;
| website = {{URL|https://cmake.org/}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CMake&amp;#039;&amp;#039;&amp;#039;是個一個[[开源]]的[[跨平台]][[Build automation|自動化建構]]系統，用來管理軟體建置的程序，並不依賴於某特定編譯器，並可支援多層目錄、多個應用程式與多個函式庫。&lt;br /&gt;
它用組態檔控制建構過程（build process）的方式和[[Unix]]的[[make]]相似，只是CMake的組態檔取名為CMakeLists.txt。CMake並不直接建構出最終的軟體，而是產生標準的建構檔（如Unix的Makefile或Windows [[Visual C++]]的projects/workspaces），然後再依一般的建構方式使用。這使得熟悉某個[[整合開發環境]]（IDE）的開發者可以用標準的方式建構他的軟體，這種可以使用各平台的原生建構系統的能力是CMake和[[SCons]]等其他類似系統的區別之處。&lt;br /&gt;
CMake設定檔（CMakeLists.txt）可設定原始碼或目標程式庫的路徑、產生[[適配器]]（wrapper）、還可以用任意的順序建構執行檔。CMake支援in-place建構（二進檔和原始碼在同一個目錄樹中）和out-of-place建構（二進檔在別的目錄裡），因此可以很容易從同一個原始碼目錄樹中建構出多個二進檔。CMake也支援靜態與動態程式庫的建構。&lt;br /&gt;
&lt;br /&gt;
「CMake」這個名字是「Cross platform Make」的縮寫。雖然名字中含有「make」，但是CMake和Unix上常見的make系統是分開的，而且更為高階。它可與原生建置環境結合使用，例如：make、ninja、[[蘋果公司]]的[[Xcode]]與[[微软|微軟]]的[[Microsoft Visual Studio]]。&lt;br /&gt;
&lt;br /&gt;
== 歷史 ==&lt;br /&gt;
CMake是為了解決[[美國國家醫學圖書館]]出資的[[Visible Human Project]]專案下的[[Insight Segmentation and Registration Toolkit]]（ITK）軟體的跨平台建構的需求而創造出來的，其設計受到了Ken Martin開發的[[pcmaker]]所影響。pcmaker當初則是為了支援[[VTK|Visualization Toolkit]]（VTK）這個開放原始碼的三維圖形和視覺系統才出現的，今日VTK也採用了CMake。在設計CMake之時，Kitware公司的Bill Hoffman採用了pcmaker的一些重要想法，加上更多他自己的點子，想把[[GNU build system|GNU建構系統]]的一些功能整合進來。CMake最初的實作是在2000年中作的，在2001年初有了急速的進展，許多改良是來自其他把CMake整合到自己的系統中的開發者，比方說，採用CMake作為建構環境的[[VXL]]社群就貢獻了很多重要的功能，Brad King為了支援CABLE和GCC-XML這套自動包裝工具也加了幾項功能，通用電氣公司的研發部門則用在內部的測試系統DART，還有一些功能是為了讓VTK可以過渡到CMake和支援[[美國Los Alamos國家實驗室|洛斯阿拉莫斯國家實驗室]]的Advanced Computing Lab的平行視覺系統ParaView而加的。&lt;br /&gt;
&lt;br /&gt;
== 更多功能介紹 ==&lt;br /&gt;
* 組態檔是用一種建構軟體專用的特殊程式語言寫的CMake腳本。&lt;br /&gt;
* 內建[[C語言]]、[[C++]]、[[Fortran]]、[[Java]]的自動相依性分析功能。&lt;br /&gt;
* 經由CMake腳本語言支援[[SWIG]]、[[Qt]]、[[FLTK]]。&lt;br /&gt;
* 內建對[[Microsoft Visual Studio|微軟Visual Studio .NET]]和過去的Visual Studio版本的支援，可以產生.dsp、.sln和.vcproj檔。&lt;br /&gt;
* 用傳統的時間標籤偵測檔案內容的改變。&lt;br /&gt;
* 支援分布式建構（在多台電腦上同時建構）&lt;br /&gt;
* 在許多作業系統上進行[[交叉編譯器|跨平台編譯]]，包括  [[Linux]]、與[[POSIX]]相容的系統（[[AIX]]、[[BSD/OS|*BSD系統]]、[[HP-UX]]、[[IRIX]]、[[MinGW|MinGW/MSYS]]、[[Solaris]]）、[[Mac OS X]]和微軟Windows 95/98/NT/2000/XP等。&lt;br /&gt;
* 產生可以給[[Graphviz]]用的全局相依圖。&lt;br /&gt;
* 已經和[[Dart]]、[[CTest]]和[[CPack]]等軟體測試和釋出的工具整合。&lt;br /&gt;
&lt;br /&gt;
== 使用CMake的應用軟體 ==&lt;br /&gt;
{{div col|colwidth=22em}}&lt;br /&gt;
* [[Allegro library]]&lt;br /&gt;
* [[Armadillo (C++ library)|Armadillo]] - linear algebra library&lt;br /&gt;
* [[Avidemux]]&lt;br /&gt;
* [[Awesome (window manager)|Awesome]]&lt;br /&gt;
* [[Blender|Blender 3D]]&lt;br /&gt;
* [[Boost C++ Libraries]]&lt;br /&gt;
* [[Bullet|Bullet物理引擎]]&lt;br /&gt;
* [[Chicken Scheme|Chicken]]&lt;br /&gt;
* [[Chipmunk physics engine]]&lt;br /&gt;
* [[clang]]&lt;br /&gt;
* [[Conky (software)|Conky]]&lt;br /&gt;
* [[Doomsday Engine]]&lt;br /&gt;
* [[Drishti]]&lt;br /&gt;
* [http://fennel.sourceforge.net/ Fennel]{{Wayback|url=http://fennel.sourceforge.net/ |date=20091005081548 }}&lt;br /&gt;
* [[Gammu (software)|Gammu]]&lt;br /&gt;
* [[GDCM]]&lt;br /&gt;
* [[Gmsh]]&lt;br /&gt;
* [[Hedgewars]]&lt;br /&gt;
* [[Hypertable]]&lt;br /&gt;
* [[hugin (software)|hugin]]&lt;br /&gt;
* [[IGSTK]]&lt;br /&gt;
* [[Insight Segmentation and Registration Toolkit]]&lt;br /&gt;
* [[Jetbrains Clion]]&lt;br /&gt;
* [[KDE Software Compilation 4]]&lt;br /&gt;
* [[Kicad]]&lt;br /&gt;
* [[LMMS]]&lt;br /&gt;
* [[LLVM]]&lt;br /&gt;
* [[MiKTeX]]&lt;br /&gt;
* [[MuseScore]]&lt;br /&gt;
* [[MySQL]]（on Windows only）&lt;br /&gt;
* [[OGRE]]&lt;br /&gt;
* [[OpenSceneGraph]]&lt;br /&gt;
* [[OpenCV]]&lt;br /&gt;
* [https://web.archive.org/web/20100528184253/http://www.umr-lisah.fr/openfluid/ OpenFLUID]&lt;br /&gt;
* [[ParaView]]&lt;br /&gt;
* [[Poppler (software)|Poppler]]&lt;br /&gt;
* [[PvPGN]]&lt;br /&gt;
* [[Quantum GIS]]&lt;br /&gt;
* [[Raw Therapee]]&lt;br /&gt;
* [https://web.archive.org/web/20091108155601/http://remproject.org/ Rem]&lt;br /&gt;
* [[Scribus]]&lt;br /&gt;
* [[SuperTux]]&lt;br /&gt;
* [[3DSlicer|Slicer]]&lt;br /&gt;
* [[Stellarium]]&lt;br /&gt;
* [[Visual Studio]]&lt;br /&gt;
* [[VTK|The Visualization Toolkit]]&lt;br /&gt;
* [[VXL]]&lt;br /&gt;
* [[UFFS]]&lt;br /&gt;
* [[Xcode]]&lt;br /&gt;
{{div col end}}&lt;br /&gt;
&lt;br /&gt;
== 參見 ==&lt;br /&gt;
{{Portal|自由軟體}}&lt;br /&gt;
* [[Automake]]&lt;br /&gt;
* [[qmake]]&lt;br /&gt;
* [[xmake]]&lt;br /&gt;
* [[SCons]]&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
* [http://www.cmake.org/ CMake home page]{{Wayback|url=http://www.cmake.org/ |date=20080509074616 }}&lt;br /&gt;
* [http://lwn.net/Articles/188693/ Why the KDE project switched to CMake—and how]{{Wayback|url=http://lwn.net/Articles/188693/ |date=20110507043418 }}&lt;br /&gt;
* [https://gavinliu6.github.io/CMake-Practice-zh-CN/#/foreword CMake实践——  一个快捷入门在线教程]&lt;br /&gt;
{{wikibooks|CMake_入門}}&lt;br /&gt;
{{DEFAULTSORT:CMake}}&lt;br /&gt;
[[Category:自由软件]]&lt;br /&gt;
[[Category:編譯器軟件]]&lt;br /&gt;
[[Category:程序設計工具]]&lt;br /&gt;
[[Category:自动化构建]]&lt;/div&gt;</summary>
		<author><name>imported&gt;LLnnn252</name></author>
	</entry>
</feed>