實驗2 vi編輯器和GCC編譯器
學院: 工業自動化學院 專業: 機器人工程一班 年級: 19 實驗時間:
姓名: 李宇軒 學號: 190410105022 組別:_______ 指導教師:
一、實驗目的練習使用vi編輯器三種模式:
了解編譯的四個階段,熟悉gcc編譯器的使用。
掌握gcc編譯器常用的選項參數。
二、實驗環境與條件1.標配PC機
2.VMware Workstation 10
3.Ubuntu 16.04
三、實驗過程及說明1.根據實驗指導書hello.c的程序,編寫程序輸出自己的姓名學號。分別截圖表示程序的內容和輸出結果。
2.將test.c文件轉換為匯編語言、機器語言,分別使用cat指令查看,并附上截圖。
3.按照實驗指導書要求編寫C語言源程序sum.c,截圖表示該程序的內容,對sum.c預編譯后,截圖表示預編譯后的內容。
4.在sum.c的基礎上修改程序(使程序的計算復雜),執行優化選項進行編譯。對比不加優化選項,程序的執行耗時,截圖表示。
修改后:
1.簡述vi編輯器三種模式如何進行切換。
按下vi進入默認輸入模式,可以輸入命令;在命令模式下輸入 i可以進行文本輸入模式,若想回到命令模式下,按下esc即可;在命令行模式下,輸入:可進入末行模式,可以對文本進行保存和退出vi編輯器
2.將C語言源程序編譯成可執行文件,依次經過哪些階段?分別對文件做哪些處理?
預處理→編譯→匯編→鏈接/加載
預處理:將存儲在不同文件的源程序(.c文件)聚合在一起,將語言中的宏進行替換,比如預處理指令#include,讓編譯器打開包含的文件,將其程序與其他程序呆在一起.生成.i文件。
編譯:預處理源程序(.i文件)變為匯編程序(.s文件)
匯編:將匯編程序轉換為可重定位的機器代碼,這一步產生目標文件(.obj或.o文件)。
鏈接/加載:鏈接就是把目標文件和其他分別進行編譯生成的程序模塊(如果有的話)及系統提供的標準庫函數連接在一起,生成可運行的可執行文件的過程,加載時將各代碼與數據定位到內存合適的位置,這一步產生最終的可執行文件