GCC的全稱是GNU Compiler Collection,是GNU工具鏈中的一種。GCC不僅支持C/C++語言,還支持Fortran/Ada/Java等語言的編譯。GCC和gcc是兩個概念,GCC是工具鏈的集合,裡面除了gcc/g++還包含了ccl,cclplus等組件。gcc/g++只是GCC工具鏈的一個子集。 ## g++和gcc的區別 gcc可以判斷出目標程序所使用編程語言的類別,會把xxx.c文件當作C語言編譯,把xxx.cpp文件當作C++語言編譯。而g++只把xxx.c和xxx.cpp一律都當作C++語言來編譯。在編譯C++文件的時候,g++會自動鏈接一些標準庫或基礎庫,而gcc不會。當正在編譯的C++代碼文件依賴STL標準庫的時候,為了使用STL,gcc命令需要增加參數`–lstdc++`。因此,雖然gcc和g++都可以編譯C++語言程序,但是使用g++會更方便一些。 ## 常見文件副檔名 - 目標文件: - xxx.o:操作系統:Linux, Mac - xxx.obj, 操作系統:windows - 二進製文件: - xxx(沒有後綴名), 操作系統:Linux, Mac, FreeBSD, - xxx.exe, 操作系統:windows - xxx.hex,操作系統:嵌入式系統 - 共享庫文件,也叫動態庫文件: - xxx.dll, 操作系統:windows - xxx.so, 操作系統:Linux - xxx.dylib, 操作系統:Mac\ - 靜態庫文件 - xxx.a