| 項目 | 內容 |
|---|---|
| 這個作業屬於哪個課程 | Linux系統與應用 |
| 這個作業的要求在哪里 | 實驗四作業要求 |
| 學號-姓名 | 17043210-鄧斌 |
| 作業學習目標 | 1. Linux系統下C語言開發環境搭建 2.學習Linux系統環境C語言開發過程 |
1.安裝C語言開發環境
(1)安裝C語言編譯環境


(2)查看gcc版本信息

(3)查看make版本信息

2.簡單C語言練習
(1)首先通過man命令查看幫助文檔
如果我們不清楚一些命令的操作,我們可以通過man命令來查看幫助。如:


(2)命令行模式簡單C語言編譯鏈接等操作
通過vim編輯器寫一個最簡單的C語言程序,如寫一個輸出自己學號的程序。
先創建一個文件夾,然后進入該新創建的文件夾。


輸入完了源程序,接下來我們進行C語言程序編譯的四個階段,預編譯,編譯,匯編,鏈接
a) 預編譯

可以用vim打開test.i文件來查看文件內容,也可以用命令來查看
b) 編譯


同樣的我們可以用vim打開test.s文件來查看內容,也可以用命令,如cat:

用vim test.s 顯示如下:

因為預編譯和編譯得到的文件都是文本文件,所以我們可以用vim打開查看文件內容。
c) 匯編

這里生成的test.o不是文本文件了,是二進制文件,我們可以通過objdump命令來反匯編該文件來分析文件內容,如下圖所示:

d) 鏈接

可執行文件是二進制文件,同樣需要用objdump命令來反匯編該文件分析文件內容,如圖:


e) 運行

r:讀權限 w:寫權限 x:可執行權限
(3),多文件編譯
我們在exp4文件夾下面再建一個文件夾mfc(multi-fifiles compile)

在該文件夾下面創建5個文件,文件名分別如下:

每個文件的內容分別如下:
(1) main.c文件

(2) my1.h文件

(3)my1.c文件

(4)my2.h文件

(5)my2.c文件

完成上面的代碼輸入,接下來我們進行編譯,對於多文件編譯,我們可以一次編譯鏈接生成可執行文件,也可以分別編譯每個C文件,最后再進行鏈接得到可執行文件。


請說明兩種方法的區別?
main1:一次編譯鏈接直接生成可執行文件,不產生目標文件
main2:分別對每個C文件進行編譯產生目標文件,之后再進行鏈接得到可執行文件
接下來我們編寫一個簡單的Makefile,通過make工具幫助我們進行編譯。在當前文件夾編寫一個Makefile文件

Makefile文件內輸入以下內容:

現在我們可以直接在終端輸入make就可以進行編譯鏈接操作:

