程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 在Linux系統上運用強大的C/C++編譯器

在Linux系統上運用強大的C/C++編譯器

編輯:C++入門知識

上回在編譯過程中,發現C++編譯器是一個很強大的C/C++編譯器,該編譯以速度快、空間效率高為他的特點,它的版本對標准化C++的支持達92.73%,大大的支持了CPU優化工作。

如果你有兩個或少數幾個C 源文件,也可以方便地利用GCC 編譯、連接並生成可執行文件。例如,假設你有兩個源文件 main.c 和 factorial.c兩個源文件,現在要編譯生成一個計算階乘的程序。

清單 main.c

  1. #include   
  2. #include   
  3. int factorial (int n);  
  4. int main (int argc, char **argv)  
  5. {  
  6. int n;  
  7. if (argc < 2) {  
  8. printf ("Usage: %s n ", argv [0]);  
  9. return -1;  
  10. }  
  11. else {  
  12. n = atoi (argv[1]);  
  13. printf ("Factorial of %d is %d. ", n, factorial (n));  
  14. }  
  15. return 0;  
  16. }  

GCC 可同時用來編譯 C 程序和 C++ 程序。一般來說,C 編譯器通過源文件的後綴名來判斷是 C 程序還是 C++ 程序。在 linux 中,C 源文件的後綴名為 .c,而 C++ 源文件的後綴名為 .C 或 .cpp。

但是,gcc 命令只能編譯 C++ 源文件,而不能自動和 C++ 程序使用的庫連接。因此,通常使用 g++ 命令來完成 C++ 程序的編譯和連接,該程序會自動調用 gcc 實現編譯。假設我們有一個如下的 C++ 源文件hello.C):

  1. #include   
  2. void main (void)  
  3. {  
  4.  cout << "Hello, world!" << endl;  

則可以如下調用 g++ 命令編譯、連接並生成可執行文件:

  1. $ g++ -o hello hello.C   
  2. $ ./hello   
  3. Hello, world!   

其它的編譯器如:Intel C/C++大家一看名稱就知道是Intel的東西,它和VC6完全兼容,不過要掛在VC6下才能用。Watcom C/C++是早先編譯器四國大戰中的一員,原本是很不錯的東西,可惜戰略不對,現在已不見聲息了。倒是以它為基礎的一個OpenWatcom現在還在奮戰。

VectorC是我近日才發現的一個好東東,它是個純C的編譯器。IBM的VisualAge for C++原本是IBM想用來淌強大的C/C++編譯器這片渾水的東西,不過IBM的戰略改了,它就被放棄了。DigitalMars C/C++的前身的Symantec C++它也是編譯器四國大戰中的一員),不過現在Symantec不做了。

於是它的作者就把它改成了DigitalMars C/C++開放給大家使用。以上這些都是WIN32平台上的東西。KAI C/C++是個很強大的C/C++編譯器,它是個多平台的編譯器。不過現在被INTEL收購了,已經停止開發了。Lcc4.1是個純C的編譯器它是開放源代碼的。

不過不怎麼好用。LCC-WIN32是一個在LCC基礎上開發的C語言的集成開發環境,很好用,而且有很詳細的資料,FREE!Pacific C是一個純DOS的C的集成開發環境,就不多說了。Small C CC386都是開放源代碼的強大的C/C++編譯器,它們都很簡單。應用來給大家學習編譯器的。Quincy Eic CINT都是C的解釋器,是用來讓大家學習C語言的其中CINT的功能很強大,還支持一些C++的特性。

  1. C與C++中標准輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved