實驗四 Linux系統搭建C語言編程環境


項目 內容
這個作業屬於哪個課程 <班級課程的主頁鏈接 >
這個作業的要求在哪里 <作業要求鏈接接地址 >
學號-姓名 <17043226-易天儒>
作業學習目標 <1. 了解Linux系統C語言編程環境;2. 學習Linux環境C語言開發步驟>

實驗內容

1.安裝C語言開發環境

 1 | sudo apt install build-essential

如果安裝沒有問題,接下來查看gcc的版本信息,大家也可以先查看gcc版本信息如果提示沒有gcc再進行安裝,因為有的同學可能早就安裝了gcc

查看make版本信息

 1 | make -v

如果上面沒有問題,我們就可以使用gcc對C語言程序進行編譯鏈接等操作

2.簡單C語言練習

1)首先我們通過man命令查看幫助文檔,如果我們不清楚一些命令的操作,我們可以通過man命令來查看幫助。如:

 1 | man gcc





這里簡單列出一些通過man命令查看gcc幫助文檔的信息,man幫助文檔通常都是英文的,大家可以安裝中文的幫助文檔,不過通常英文的要准確一點。

2)命令行模式簡單C語言編譯鏈接等操作

我們可以通過vim編輯器編寫一個最簡單的C語言程序,如寫一個輸出自己學號的程序。先創建一個文件夾,然后進入該新創建的文件夾

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

a) 預編譯

我們可以用vim打開test.i文件來查看文件內容,也可以用命令來查看

這里大家自行查看文件內容並理解。

b) 編譯

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

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

c) 匯編

這里生成的不是文本文件了,是二進制文件,我們可以通過objdump命令來反匯編該文件來分析文件內容

d) 鏈接

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

1 | objdump -d test

這里反匯編輸出內容較多,我只截圖main函數部分,大家可以與test.o反匯編的內容進行對比分析。

**e) 運行

3) 多文件編譯

我們在exp4文件夾下面再建一個文件夾mfc(multi-fifiles compile)

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

每個文件的內容分別如下:




完成上面的代碼輸入,接下來我們進行編譯,對於多文件編譯,我們可以一次編譯鏈接生成可執行文

件,也可以分別編譯每個C文件,最后再進行鏈接得到可執行文件。

請說明兩種方法的區別?
答:前者為一次性編譯,可以直接使用源文件鏈接生成可執行文件。后者為分別編譯,會各自生成目標文件,須使用目標文件進行連接生成可執行文件。
接下來我們編寫一個簡單的Makefifile,通過make工具幫助我們進行編譯。在當前文件夾編寫一個Makefifile文件

注意這里每個gcc以及最后的rm前面都是有一個tab

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM