項目 | 內容 |
---|---|
這個作業屬於哪個課程 | 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就可以進行編譯鏈接操作: