日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

在Linux系统终端利用ggc,大学计算机:Linux下C编程.pdf

發(fā)布時間:2024/4/13 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Linux系统终端利用ggc,大学计算机:Linux下C编程.pdf 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第 1 章 編譯與調(diào)試

1.1 編譯的概念和理解

在進(jìn)行 C 程序開發(fā)時,編譯就是將編寫的 C 語言代碼變成可執(zhí)行程序的過程,這一過程

是由編譯器來完成的。編譯器就是完成程序編譯工作的軟件,在進(jìn)行程序編譯時完成了一系

列復(fù)雜的過程。

1.1.1 程序編譯的過程

在執(zhí)行這一操作時,程序完成了復(fù)雜的過程。一個程序的編譯,需要完成詞法分析、語

法分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。本章將講解這些步驟的作用與原理。

(1)詞法分析。指的是對由字符組成的單詞進(jìn)行處理,從左至右逐個字符地對源程序進(jìn)

行掃描,產(chǎn)生一個個的單詞符號。然后把字符串的源程序改造成為單詞符號串的中間程序。

在編譯程序時,這一過程是自動完成的。編譯程序會對代碼的每一個單詞進(jìn)行檢查。如果單

詞發(fā)生錯誤,編譯過程就會停止并顯示錯誤。這時需要對程序中的錯誤進(jìn)行修改。

(2 )語法分析。語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規(guī)

則的語句。例如,需要檢查表達(dá)式、賦值、循環(huán)等結(jié)構(gòu)是否完整和符合使用規(guī)則。在語法分

析時,會分析出程序中錯誤的語句,并顯示出結(jié)果。如果語法發(fā)生錯誤,編譯任務(wù)是不能完

成的。

(3 )中間代碼生成。中間代碼是源程序的一種內(nèi)部表示,或稱中間語言。程序進(jìn)行詞法

分析和語法分析以后,將程序轉(zhuǎn)換成中間代碼。這一轉(zhuǎn)換的作用是使程序的結(jié)構(gòu)更加簡單和

規(guī)范。中間代碼生成操作是一個中間過程,與用戶是無關(guān)的。

(4 )代碼優(yōu)化。代碼優(yōu)化是指對程序進(jìn)行多種等價變換,使得從變換后的程序能生成更

有效的目標(biāo)代碼。用戶可以在編譯程序時設(shè)置代碼優(yōu)化的參數(shù),可以針對不同的環(huán)境和設(shè)置

進(jìn)行優(yōu)化。

(5 )目標(biāo)代碼生成。目標(biāo)代碼生成指的是產(chǎn)生可以執(zhí)行的應(yīng)用程序,這是編譯的最后一

個步驟。生成的程序是二進(jìn)制的機(jī)器語言,用戶只能運(yùn)行這個程序,而不能打開這個文件查

看程序的代碼。

1.1.2 編譯器

所謂編譯器,是將編寫出的程序代碼轉(zhuǎn)換成計算機(jī)可以運(yùn)行的程序的軟件。在進(jìn)行 C 程

序開發(fā)時,編寫出的代碼是源程序的代碼,是不能直接運(yùn)行的。需要用編譯器編譯成可以運(yùn)

行的二進(jìn)制程序。

第5 章 編譯與調(diào)試

在不同的操作系統(tǒng)下面有不同的編譯器。C 程序是可以跨平臺運(yùn)行的。但并不是說

Windows 系統(tǒng)下 C 語言編寫的程序可以直接在 Linux 下面運(yùn)行。Windows 下面 C 語言編寫的

程序,被編譯成 exe 文件。這樣的程序只能在 Windows 系統(tǒng)下運(yùn)行。如果需要在 Linux 系統(tǒng)

下運(yùn)行,需要將這個程序的源代碼在 Linux 系統(tǒng)重新編譯。不同的操作系統(tǒng)下面有不同的編

譯器。Linux 系統(tǒng)下面編譯生成的程序是不能在 Windows 系統(tǒng)上運(yùn)行的。

1.2 gcc 編譯器

gcc 是 Linux 下的 C 程序編譯器,具有非常強(qiáng)大的程序編譯功能。在 Linux 系統(tǒng)下,C 語

言編寫的程序代碼一般需要通過 gcc 來編譯成可執(zhí)行程序。

1.2.1 gcc 編譯器簡介

Linux 系統(tǒng)下的 gcc 編譯器(GNU C Compiler )是一個功能強(qiáng)大、性能優(yōu)越的編譯器。gcc

支持多種平臺的編譯,是 Linux 系統(tǒng)自由軟件的代表作品。gcc 本來只是 C 編譯器的,但是后

來發(fā)展為可在多種硬體平臺上編譯出可執(zhí)行程序的超級編譯器。各種硬件平臺對 gcc 的支持

使得其執(zhí)行效率與一般的編譯器相比平均效率要高 20%~30% 。gcc 編譯器能將 C、C++源程

序、匯程語言和目標(biāo)程序進(jìn)行編譯鏈接成可執(zhí)行文件。通過支持 make 工具,gcc 可以實施項

目管理和批量編譯。

經(jīng)過多年的發(fā)展,gcc 已經(jīng)發(fā)生了很大的變化。gcc 已經(jīng)不僅僅能支持C 語言,還支持 Ada

語言、C++語言、Java 語言、Objective C 語言、Pascal 語言、COBOL 語言等更多的語言集的編

譯。gcc 幾乎支持所有的硬件平臺,使得 gcc 對于特定的平臺可以編譯出更高效的機(jī)器碼。

gcc 在編譯一個程序時,一般需要完成預(yù)處理(preprocessing )、編譯(compilation )、匯

編(assembly )和鏈接(linking )過程。使用gcc

總結(jié)

以上是生活随笔為你收集整理的在Linux系统终端利用ggc,大学计算机:Linux下C编程.pdf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。