gcc/g++編譯器的安裝與說明


gcc/g++編譯器的安裝與說明

1.gcc/g++編譯器的安裝

   使用yum進行安裝需要進入root用戶

  gcc  yum install gcc

  g++  yum install gcc-c++

2.gcc/g++的作用

  將c/c++源代碼編譯成機器可識別的代碼(指令)

3.編譯過程

  預處理 通過預處理指令所包含的文件內容插入程序中(展開源文件的所有代碼)

    gcc -E test.c -o test.i  產生一個預處理后的文件( .i文件 )

  編譯  語法語義糾錯,調用匯編程序生成成匯編代碼

    編譯時指定源程序,不用任何選項,會默認生成一個a.out文件

    gcc -S test.i -o test.s  產生一個匯編程序文件( .s文件 )

  匯編  將匯編代碼翻譯成機器所能識別的二進制指令

    gcc -c test.s -o test.o  產生一個目標文件( .o文件)

  鏈接  鏈接庫,將所有代碼合到一起生成可執行文件

    gcc test.o -o test    產生一個可執行文件

  鏈接分為靜態鏈接和動態鏈接:

    靜態鏈接:需要在鏈接后添加"  -static ",將所有的代碼包括標准庫的實現全部鏈接到可執行文件中;

      缺點:冗余度大,編譯出來的文件比較大

    動態鏈接:在可執行文件中只保存所需使用的函數的符號,符號表;

      優點:可執行文件小,各個模塊處於解耦狀態,且代碼復用性高

    gcc默認的鏈接方式為動態鏈接

4.gcc/g++的區別與聯系

  1>對於*.c文件,gcc會將它當成c程序,而g++會將它當成cpp程序

  2>對於*.cpp文件,gcc與g++都會當它為cpp程序

  3>cpp編譯階段,g++會調用gcc

  4>cpp鏈接階段,通常會用g++來完成,因為gcc命令不能自動與cpp程序使用的庫鏈接

5.gcc編譯器常用選項

  -c  只生成目標文件(*.o文件),不鏈接

  -E  只進行預處理,不編譯,生成預處理后的(*.i)文件

  -S  生成匯編文件(*.s)文件

  -o  指定輸出的可執行文件名稱

  -g  在編譯過程中產生調試信息

  -w  禁止警告,有時會隱藏程序中的錯誤

  -W  給出額外更詳細的警告

  -Wall  給出所有有用的警告信息,有利於排查問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM