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

C++/C 入門之編譯連接

編輯:關於C語言

對於C++/C語言的初學者來說,了解它們的編譯連接過程以及這個過程常用的工具,是一個很好的開始。


從代碼源文件到機器可執行的二進制代碼(Windows上為exe文件,Unix系列沒有約定的後綴,但可通過shell直接調用),一個C++/C文件經歷了編譯和連接兩個過程。編譯過程將源代碼轉換成匯編語言或者機器語言。由於C++/C使用的是分段編譯,即單個文件單獨編譯成中間代碼,編譯之後就必須把這些中間代碼以及這些代碼引用的庫文件,連接起來,才能形成可執行文件。


Gnu的gcc全稱Gnu Compiler Collection,是當下比較流行的C++/C的編譯連接器。gcc原名為Gnu C語言編譯器,後來很快擴展成一個編譯器套件,包含C,C++,Java等語言的編譯器。另外,Gnu組織又為C++語言單獨發布了一個編譯器,名為g++。通過執行gcc --help和g++ --help,你會發現,兩者的命令行參數幾乎是一樣的。由於gcc支持多語言編譯,如果不指名源文件的類型,gcc編譯的時候,會試圖通過文件名後綴來選擇相應的編譯器。其中.c默認C編譯器,.cpp默認C++編譯器。


g++/gcc都支持將編譯連接過程合二為一。即通過g++ <源文件1> <源文件2> ... <源文件n> -o 目標文件或者gcc <源文件1> <源文件2> ... <源文件n> -o 目標文件的形式,直接生成可執行的目標文件。如果不通過-o選項指定目標文件的名字,默認目標文件在Windows上為a.exe,在Linux上為a.out。

下圖為Linux機器上gcc --help的輸出。

 
其中-c選項告訴編譯器只編譯和匯編,但不連接。-s選項告訴編譯器生成匯編代碼。-x選項可指定源文件類型,c,c++或者其他。

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