程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++編譯器GCC下的經常使用編譯敕令總結

C/C++編譯器GCC下的經常使用編譯敕令總結

編輯:關於C++

C/C++編譯器GCC下的經常使用編譯敕令總結。本站提示廣大學習愛好者:(C/C++編譯器GCC下的經常使用編譯敕令總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C/C++編譯器GCC下的經常使用編譯敕令總結正文


簡介
GCC的意思是GUN C Compiler。經由了多年的成長,GCC曾經不只僅能支撐C說話了,它如今還支撐Ada說話、C++說話、Java說話、Objective C說話、Pascal說話、COBOL說話,和支撐函數式編程和邏輯編程的Mercury說話等等。而GCC也不再單只是GUN C說話編譯器的意思了,而是釀成了GUN Complier Collection也等於GUN編譯器家族的意思了。另外一方面,說到GCC關於操作體系平台和硬件平台支撐,歸納綜合起來就一句話:無所不在。


編譯
示例法式以下:

  #include <stdio.h> 
   
  int main(void) { 
    printf("Hello World!\n"); 
   
    return 0; 
  } 


這個法式,一步到位的編譯指令是:

  gcc -o test test.c 


本質上,上述編譯進程是分為四個階段停止的:

  1.     預處置(也稱為預編譯,Preprocessing)
  2.     編譯(Compilation)
  3.     匯編(Assembly)
  4.     銜接(Linking)

  5. 預處置

      gcc -E test.c -o test.i 或 gcc -E test.c 
    
    


    可以輸入test.i文件中寄存著test.c經預處置以後的代碼。翻開test.i文件,看一看,就明確了。前面那條指令,是直接在敕令行窗口中輸入預處置後的代碼。

    gcc的-E選項,可讓編譯器在預處置後停滯,並輸入預處置成果。在本例中,預處置成果就是將stdio.h文件中的內容拔出到test.c中了

    編譯為匯編代碼
    預處置以後,可直接對生成的test.i文件編譯,生成匯編代碼:

      gcc -S test.i -o test.s 
    
    


    gcc的-S選項,表現在法式編譯時代,在生成匯編代碼後,停滯,-o輸入匯編代碼文件

    匯編
    關於上一末節生成的匯編代碼文件test.s,gas匯編器擔任將其編譯為目的文件,以下:

      gcc -c test.s -o test.o 
    
    


    銜接
    gcc銜接器是gas供給的,擔任將法式的目的文件與所需的一切附加的目的文件銜接起來,終究生成可履行文件。附加的目的文件包含靜態銜接庫和靜態銜接庫。

    關於上一末節中生成的test.o,將其與c尺度輸出輸入庫停止銜接,終究生成法式test

      gcc test.o -o test 
    
    


    在敕令行窗口中履行./test,讓它說Hello World!吧


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