gcc 8.3官方版是一款由 GNU 開發的編程語言編譯器工具,即GNU Compiler Collection,GNU編譯器套裝。gcc 8.3官方版是一套以 GPL 及 LGPL許可證所發行的自由軟件,亦是自由的類Unix 及蘋果計算機 Mac OS X 操作系統的標準編譯器。
相關軟件 | 版本說明 | 下載地址 |
|---|---|---|
猿編程客戶端 | 官方版 | 查看 |
Sublime Text | 中文版 | 查看 |
JD-GUI | 中文版 | 查看 |
vc++6.0 | 簡體中文企業版 | 查看 |
軟件介紹
gcc 8.3官方版原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理
C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言,所以改名GNU編譯器套件(GNU Compiler Collection)
軟件功能
1、gcc編譯器以GPL及LGPL許可證所發行的自由軟件;
2、既能處理C語言,也能處理C++;
3、支持Fortran、Pascal、Objective-C、Java,以及Ada與其他語言;
4、gcc編譯器支持跨windows、mac、linux等平臺;
5、可以透支和保存文件;
6、可以解決一個共同的碰撞;
7、可以進行解析器的越界。
軟件結構
GCC的外部接口長得像一個標準的Unix編譯器。使用者在命令列下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入檔案使用的個別語言編譯器,并為輸出程序碼使用適合此硬件平臺的組合語言編譯器,并且選擇性地執行連接器以制造可執行的程序。每個語言編譯器都是獨立程序,此程序可處理輸入的原始碼,并輸出組合語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的原始碼,并產生一抽象語法樹,以及一翻譯此語法樹成為GCC的暫存器轉換語言〈RTL〉的后端。編譯器**化與靜態程序碼解析技術(例如FORTIFY_SOURCE,一個試圖發現緩沖區溢位〈buffer
overflow〉的編譯器)在此階段應用于程序碼上。最后,適用于此硬件架構的組合語言程序碼以Jack Davidson與Chris
Fraser發明的算法產出。幾乎全部的GCC都由C寫成,除了Ada前端大部分以Ada寫成。
基本規則
gcc所遵循的部分約定規則:
.c為后綴的文件,C語言源代碼文件;
.a為后綴的文件,是由目標文件構成的檔案庫文件;
.C,.cc或.cxx 為后綴的文件,是C++源代碼文件且必須要經過預處理;
.h為后綴的文件,是程序所包含的頭文件;
.i 為后綴的文件,是C源代碼文件且不應該對其執行預處理;
.ii為后綴的文件,是C++源代碼文件且不應該對其執行預處理;
.m為后綴的文件,是Objective-C源代碼文件;
.mm為后綴的文件,是Objective-C++源代碼文件;
.o為后綴的文件,是編譯后的目標文件;
.s為后綴的文件,是匯編語言源代碼文件;
.S為后綴的文件,是經過預編譯的匯編語言源代碼文件。
使用說明
安裝了MinGW,在其根目錄下的bin文件夾中發現有等文件。
為了測試,我在該文件夾中新建了一個test.bat文件,將其中內容寫為:
gcc test.cpp
然后在該文件夾中創建test.cpp文件并將其內容設置為:
雙擊test.bat文件,發現該文件夾中產生了一個a.exe文件,執行該exe文件,發現其與預期編譯效果一致,說明編譯成功。
gcc –o name test.cpp
可以生成名為name.exe的可執行程序。
把指令改為gcc –e test.cpp >test.txt 后,提示錯誤
gcc: no input files
而把參數E改為大寫之后問題即解決:
gcc –E test.cpp > test.txt
版本說明
GCC 8.3 發布了,GCC 8.3 是 GCC 8 分支的 bug 修復版本,其中包含對 GCC 8.2 中的回歸和嚴重 bug
的重要修復,自上一版本以來修復了超過 153 個錯誤。
GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由 GNU 開發的編程語言編譯器。它是一套以 GPL 及 LGPL
許可證所發行的自由軟件,也是 GNU計劃 的關鍵部分,亦是自由的 類Unix 及蘋果計算機 Mac OS X
操作系統的標準編譯器。GCC(特別是其中的C語言編譯器)也常被認為是跨平臺編譯器的事實標準。GCC 原本只能處理 C語言,隨后增加了處理
C++的能力,再之后也變得可處理 Fortran、Pascal、Objective-C、Java,以及 Ada 等多種語言。
新版更新主要是針對 Windows 操作系統的一個 C++ Microsoft ABI 位閾布局(bitfield layout)Bug
的修復(PR87137)。具體如下:
A non-field declaration could cause the current bitfield allocation unit to
be completed, incorrectly placing a following bitfield into a new allocation
unit. The Microsoft ABI is selected for:
Mingw targets
PowerPC, IA-32 or x86-64 targets when the -mms-bitfields option is
specified, or __attribute__((ms_struct)) is used
SuperH targets when the -mhitachi option is specified, or
__attribute__((renesas)) is used
GCC 8 介紹了這缺陷的額外案例。開發團隊決定在單個改動中解決掉這個缺陷的所有案例,而不是只解決掉那些回歸。



