Ubuntu

Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。


  如果单独安装gcc以及g++比较麻烦,幸运的是,为了能够编译Ubuntu的内核,Ubuntu提供了一个build-essential软件包。


  查看该软件包的依赖关系,可以看到以下内容:


  $ apt-cache depends build-essential

  build-essential

  依赖: libc6-dev

  依赖:

  libc6-dev

  依赖: gcc

  依赖: g++

  依赖: make

  依赖: dpkg-dev


  也就是说,安装了该软件包,编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序,只需要安装该软件包就可以了。


  安装方法如下:


  $sudo apt-get install build-essential


 

Package: libc6.1-dev (2.11.3-4)

Embedded GNU C Library: Development Libraries and Header Files

 

Contains the symlinks, headers, and object files needed to compile and link programs which use the standard C library.

GCCGNU Compiler CollectionGNU编译器套裝),是一套由GNU开发的编程語言编译器。它是一套以GPLLGPL許可證所發行的自由軟體,也是GNU計畫的关键部分,亦是自由的类Unix及蘋果電腦Mac OS X 操作系統的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

GCC原名為GNU C語言編譯器GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,變得可處理C++。之後也變得可處理FortranPascalObjective-CJavaAda,以及Go與其他語言。

原本用C開發,後來因為LLVM,Clang的崛起令gcc更快將開發語言轉換為C++。GCC5.0將模仿競爭對手LLVM模組 化,大幅度的改變原本的架構。

GCC是由理查德·马修·斯托曼在1985年開始的。他首先擴增一個舊有的編譯器,使它能編譯C,這個編譯器一開始是以Pastel語言所寫的。Pastel是一個不可移植的Pascal語言特殊版,這個編譯器也只能編譯Pastel語言。為了讓自由軟體有一個編譯器,後來此編譯器由斯托曼和Len Tower在1987年[1]以C語言重寫[2]並成為GNU專案的編譯器。GCC的建立者由自由軟體基金會直接管理[3]

1997年,一群不滿GCC緩慢且封閉的創作環境者,組織了一個名為EGCS《Experimental/Enhanced GNU Compiler System》的專案,此專案彙整了數項實驗性的分支進入某個GCC專案的分支中。EGCS比起GCC的建構環境更有活力,且EGCS最終也在1999年四月成為GCC的官方版本。

GCC目前由世界各地不同的數個程式設計師小組維護。它是移植到中央處理器架構以及作業系統最多的編譯器。

由於GCC已成為GNU系統的官方編譯器(包括GNU/Linux家族),它也成為編譯與建立其他作業系統的主要編譯器,包括BSD家族、Mac OS XNeXTSTEPBeOS

GCC通常是跨平台軟體的編譯器首選。有別於一般侷限於特定系統與執行環境的編譯器,GCC在所有平台上都使用同一個前端處理程式,產生一樣的中介碼,因此此中介碼在各個其他平台上使用GCC編譯,有很大的機會可得到正確無誤的輸出程式。

 

以2011年10月26日釋出的4.6.2版為準,本編譯器版本可處理下列語言:

 

先前版本納入的CHILL前端由於缺乏維護而被廢棄。

Fortran前端在4.0版之前是G77,此前端僅支援Fortran 77。在本版本中,G77被廢棄而採用更新的GFortran,因為此前端支援Fortran 95

下列前端依然存在:

 

[编辑]内嵌OpenMP支持

OpenMP是一种跨语言的对称多处理机(SMP)多线程并行程序的编程工具,也非常适合当今越来越流行的单CPU多核硬件环境,因此从gcc4.2开始,OpenMP成为其内嵌支持的并行编程规范,可以直接编译内嵌OpenMP语句的C/C++/Fortran95的源代码。gcc4.2之前如果想在C/C++/Fortran中嵌入OpenMP语句的话,需要额外安装库和预处理器才能识别和正确处理这些语句。

  • gcc 4.2.0开始支持OpenMP v2.5
  • gcc 4.4.0开始支持OpenMP v2.5及v3.0

 

GCC目前支援下列處理器架構(以4.1版為準):

 

較不知名的處理器架構也在官方釋出版本中支援:

 

由FSF個別維護的GCC處理器架構:


原文地址:http://blog.csdn.net/watkinsong/article/details/8435340

原文地址:https://www.cnblogs.com/sunylat/p/6119036.html