目录
23 关系: Automake,头文件,Bourne shell,C++,C语言,CMake,Erlang,跨平台,自由软件基金会,Gettext,GNU,GNU m4,GNU通用公共许可证,GNU构建系统,Gtkmm,KDE,Libtool,Make,Microsoft Visual Studio,Objective-C,Pkg-config,Scribus,Xcode。
- 自动化构建
Automake
GNU Automake是一種編程工具,可以產生供make程式使用的Makefile,用來編譯程式。它是自由軟體基金會發起的GNU計劃的其中一項,作為GNU構建系統的一部分。automake所產生的Makefile符合GNU編程標準。 automake是由Perl語言所寫的,必須和GNU autoconf一併使用。automake包含了以下命令:.
头文件
在程序设计中,特别是在C语言和C++中,头文件或包含文件是一个文件,通常是源代码的形式,由编译器在处理另一个源文件的时候自动包含进来。一般来说,程序员通过编译器指令将头文件包含进其他源文件的开始(或头部)。 一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以被放在一个头文件中,并在需要的地方包含这个头文件。 在C语言和C++中,标准库函数习惯上在头文件中声明,参见C标准函式库和C++标准函式库。.
查看 Autoconf和头文件
Bourne shell
Bourne shell,或sh,是Version 7 Unix默认的Unix shell,替代执行文件同为sh的Thompson shell。它由AT&T贝尔实验室的史蒂夫·伯恩在1977年在Version 7 Unix中针对大学与学院发布的。它的二进制程序文件在大多数Unix系统上位于/bin/sh,在很多Unix版本中,它仍然是root的默认shell。 其concise(简洁),compact(紧凑),fast(高效),由AT&T编写,属于系统管理shell。.
C++
C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.
查看 Autoconf和C++
C语言
C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.
查看 Autoconf和C语言
CMake
CMake是個一個开源的跨平台自動化建構系統,用來管理軟體建置的程序,並不相依於某特定編譯器。並可支援多層目錄、多個應用程式與多個函式庫。 它用組態檔控制建構過程(build process)的方式和Unix的make相似,只是CMake的組態檔取名為CMakeLists.txt。CMake並不直接建構出最終的軟體,而是產生標準的建構檔(如Unix的Makefile或Windows Visual C++的projects/workspaces),然後再依一般的建構方式使用。這使得熟悉某個整合開發環境(IDE)的開發者可以用標準的方式建構他的軟體,這種可以使用各平台的原生建構系統的能力是CMake和SCons等其他類似系統的區別之處。 CMake設定檔(CMakeLists.txt)可設定原始碼或目標程式庫的路徑、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake支援in-place建構(二進檔和原始碼在同一個目錄樹中)和out-of-place建構(二進檔在別的目錄裡),因此可以很容易從同一個原始碼目錄樹中建構出多個二進檔。CMake也支援靜態與動態程式庫的建構。 「CMake」這個名字是"Cross platform MAke"的縮寫。雖然名字中含有"make",但是CMake和Unix上常見的「make」系統是分開的,而且更為高階。 它可與原生建置環境結合使用,例如:make、蘋果的Xcode與微軟的Visual Studio。.
Erlang
Erlang()是一種通用的----,它由喬·阿姆斯特朗(Joe Armstrong)在瑞典電信設備製造商愛立信所轄的電腦科學研究室開發,目的是創造一種可以應付大規模開發活動的--和執行環境。Erlang於1987年釋出正式版本,最早是愛立信擁有的私有軟體,經過十年的發展,於1998年發表開放源碼版本。 Erlang是運作於虛擬機的--,但是現在也包含有烏普薩拉大學高性能Erlang計劃(HiPE)開發的原生程式碼編譯器,自R11B-4版本開始,Erlang也支持--。在編程範型上,Erlang屬於多重典範程式語言,涵蓋函數式、--及--。循序執行的Erlang是一个及早求值, 單次賦值和--的函數式程式語言。.
跨平台
跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.
查看 Autoconf和跨平台
自由软件基金会
自由軟件基金會(Free Software Foundation,FSF)是一個致力於推廣自由軟件的美國民間非營利性組織。它於1985年10月由理查德·斯托曼建立。其主要工作是執行GNU計劃,開發更多的自由軟件。 從其建立到1990年代中自由軟件基金會的基金主要被用來僱用編程師來發展自由軟件。從1990年代中開始寫自由軟件的公司和個人繁多,因此自由軟件基金會的僱員和志願者主要在自由軟件運動的法律和結構問題上工作。.
Gettext
gettext是GNU国际化与本地化(i18n)函数库。它常被用于编写多语言程序。.
GNU
GNU是一個自由的作業系統,其內容軟體完全以GPL方式釋出。這個作業系統是GNU計劃的主要目標,名稱來自GNU's Not Unix!的遞迴縮寫,因為GNU的設計類似Unix,但它不包含具著作權的Unix代碼。GNU的創始人,理察·馬修·斯托曼,將GNU視為「達成社會目的技術方法」。 作為作業系統,GNU的發展仍未完成,其中最大的問題是具有完備功能的內核尚未被開發成功。GNU的內核,稱為Hurd,是自由軟體基金會發展的重點,但是其發展尚未成熟。在實際使用上,多半使用Linux內核、FreeBSD等替代方案,作為系統核心,其中主要的操作系統是Linux的發行版。Linux作業系統包涵了Linux內核與其他自由軟體計畫中的GNU組件和軟體,可以被稱為GNU/Linux(見GNU/Linux命名爭議)。.
查看 Autoconf和GNU
GNU m4
GNU m4為m4巨集前處理器的GNU版本。其目的是為了避免傳統m4前處理器中的多種限制,諸如對行長度的最大值限制,巨集大小的最大值限制,巨集數量的限制等。拿掉這些霸道的限制是GNU計畫的既定目標之一。 GNU Autoconf包使GNU m4的功能得以廣為使用。 GNU m4目前是由Eric Blake來維護。.
GNU通用公共许可证
GNU通用公共授權條款(GNU General Public License,简称 GNU GPL、GPL)是廣泛使用的免費軟件許可證,可以保證終端用戶得自由運行,學習,共享和修改軟件。許可證最初由GNU項目的自由軟件基金會 (FSF)的理查德·斯托曼(Richard Matthew Stallman)撰寫,並授予計算機程序的收件人自由軟件定義的權利。 GPL是一個Copyleft許可證,這意味著衍生作品只能以相同的許可條款分發。 這與許可免費軟件許可證有所區別 ,其中BSD許可證和MIT許可證是廣泛使用的示例。 GPL是第一個普遍使用的Copyleft許可證。 歷史上,GPL許可證系列一直是免費和開源軟件領域最受歡迎的軟件許可之一。 根據GPL許可的優異自由軟件程序的例子有Linux內核和GNU編譯器集合 (GCC)。 David A.
GNU构建系统
所谓GNU构建系统(GNU Build System)主要是指通过autoconf、automake和libtool这三个工具构建出来的软件结构体系,又名Autotools。通常和GNU make、gettext以及GCC一起配套使用。这个软件结构体系也是所有GNU项目的打包方式。 此打包方式的优点在于项目的可移植性,当程序本身不包含与硬件架构有关的代码时,可以直接将源码包复制到另一台计算机上,通过简单./configure、make和make install三步骤完成程序的配置,编译和安装(第三步需要系统管理员权限)。Sourceforge上提供了官方的使用教程。.
Gtkmm
gtkmm 是官方的GTK+的C++接口,GTK+是当前最流行的图形界面开发库之一。使用gtkmm,你不但可以从代码还可以用Glade来创建用户界面。不过需要libglademm的配合。gtkmm是自由软件,遵循LGPL(GNU Lesser General Public License)。 gtkmm代指gtk minus minus或gtk--。.
KDE
KDE(),是一個國際性的自由軟體社区,开发运行在Linux、BSD、Solaris、Microsoft Windows 與 macOS 等平台上的一系列跨平台应用程序。它最著名的产品是 Plasma 桌面,是許多 Linux 發行版的預設桌面環境,例如openSUSE、Mageia、Linux Mint、Kubuntu、PCLinuxOS 與 Chakra GNU/Linux。 社群的目標是開發基本的桌面功能和日常必需的應用程式,以及提供開發者編寫獨立的應用程式的工具和文檔。許多獨立應用程式和規模較小的項目是基於 KDE 的技術,這些軟體包括 Calligra Suite、digiKam、Rekonq、K3b 和許多其他應用程式。KDE 軟體是基於Qt框架所开发。 多个国家的政府部门也使用 KDE 软件,興建位於瑞士的大型強子對撞機也使用 KDE 軟體。.
查看 Autoconf和KDE
Libtool
GNU Libtool是一種屬於GNU建構系統的GNU程式設計工具,用來產生可攜式的函式庫。這裡引用的說明: 通常libtool是與GNU建構系統中的autoconf和automake這兩個工具一起使用。.
Make
在软件开发中,make是一个工具程式(Utility software),經由讀取叫做“makefile”的文件,自動化建構軟體。它是一種转化文件形式的工具,转换的目标称为“target”;与此同时,它也检查文件的依赖关系,如果需要的话,它会调用一些外部软件来完成任务。它的依赖关系检查系统非常简单,主要根据依赖文件的修改时间进行判断。大多数情况下,它被用来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件。它使用叫做“makefile”的文件来确定一个target文件的依赖关系,然后把生成这个target的相关命令传给shell去执行。 許多現代軟體的開發中(如Microsoft Visual Studio),集成开发环境已經取代make,但是在Unix環境中,仍然有許多工程師採用make來協助軟體開發。.
Microsoft Visual Studio
Microsoft Visual Studio(简称VS或MSVS)是微软公司的开发工具套件系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Phone、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight。 而Visual Studio.NET是用于快速生成企业级ASP.NET Web应用程序和高性能桌面应用程序的工具。Visual Studio包含基于组件的开发工具(如Visual C#、Visual J#、Visual Basic和Visual C++),以及许多用于简化基于小组的解决方案的设计、开发和部署的其他技术。.
查看 Autoconf和Microsoft Visual Studio
Objective-C
Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,将Smalltalk式的消息传递机制加入到ANSI C中。目前主要支持的编译器有GCC和Clang(採用LLVM作為後端)。 Objective-C的商標權屬於蘋果公司,蘋果公司也是這個程式語言的主要開發者。苹果在開發NeXTSTEP操作系統時使用了Objective-C,之后被OS X和iOS继承下來。現在Objective-C与Swift是OS X和iOS操作系统、及与其相关的API、Cocoa和Cocoa Touch的主要编程语言。.
Pkg-config
pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。pkg-config原本是设计用于Linux的,但现在在各个版本的BSD、windows、Mac OS X和Solaris上都有着可用的版本。 它输出已安装的库的相关信息,包括:.
Scribus
Scribus 是一個桌面排版(DTP)軟體,是一個以GNU通用公共許可證發布的自由軟件。提供Linux、Unix、Mac OS X、OS/2以及微軟Windows上運行的原生版本。它以其廣泛的頁面佈局功能堪比於其他非自由應用程序,如PagePlus、QuarkXPress和Adobe InDesign。 Scribus 靈活的佈局和排版,並有編寫檔案專業品質圖像設置設備的能力。它也可以創建動畫和互動的PDF圖像和形式。示例使用包括撰寫小報紙、小冊子、簡報、海報和書籍。 一本官方Scribus指導書已在2009年1月18日透過flesbooks.com出版。.
Xcode
Xcode是蘋果公司向開發人員提供的集成開發環境,用於開發macOS、iOS、WatchOS和tvOS的應用程序。.
另见
自动化构建
- Apache Ant
- Apache Maven
- Autoconf
- Automake
- BitBake
- Buildroot
- CMake
- GNU构建系统
- GitLab
- Gradle
- Jenkins (软件)
- Make
- Meson
- OpenEmbedded
- Qmake
- SCons
- Waf
- Yocto計劃
- 組建自動化