(一) 實驗目的
熟悉Linux操作系統的命令接口、圖形接口和程序接口。提高動手能力。
(二) 實驗內容和要求
本實驗涉及到Linux操作系統下的C編程,及相關系統命令。
要求:
a) 設計一個簡單的程序
b) 對該程序進行編譯、運行
c) 獨立完成
(三) 主要儀器設備
儀器: PC機
實驗環境: Linux操作系統環境
(四) 實驗原理
Linux操作系統的命令接口、圖形接口和程序接口
(五) 源程序
(六) 實驗步驟與調試
步驟:
- 1. 編寫C代碼
- 2. 用gcc命令對C文件進行編譯:gcc -c osexp1.c,生成的是osexp1.o文件,即obj文件。
- 3. gcc osexp1.o osexp1.out,生成可執行文件(.out文件)
- 4. ./osexp1.out 運行可執行文件
圖示:
(七) 實驗結果與分析
對gcc命令的總結:
gcc -c osexp1.c -o osexp1.o
編譯osexp1.c文件,但不鏈接,生成文件名為osexp1.o的目標文件(相當於VS 的obj文件),
-o是用來指定輸出文件,輸出的文件名將由其后面的命名決定,不添加-o osexp1.o時默認輸osexp1.o
-o的用法: [infile] -o [outfile] 可以直接用來改文件名
gcc -E osexp1.c -o osexp1.i
將源文件作為輸入文件,將預處理文件作為輸出文件,也即只進行預處理操作。對源文件 osexp1.c 進行預處理操作,並將結果放在 osexp1.i 預處理文件中。如果不使用 -o 選項,那么將生成名為 osexp1.i 的預處理文件。
假如我們要編譯多個文件,假設現有另一個文件fun.c
gcc -c fun.c
gcc -c osexp1.c
gcc fun.o osexp1.o -o app.out
將生成的兩個目標文件生成最終的可執行文件 app.out。如果不使用 -o 選項,那么將生成名字為 a.out(默認)的可執行文件。
gcc -S osexp1.c
如果沒有指定輸出文件名,那么采用-S選項的 GCC 編譯過程會為每個被編譯的輸入文件生成以.s作為后綴的匯編語言文件。編譯器預處理 osexp1.c,將其翻譯成匯編語言,並將結果存儲在 osexp1.s 文件中。
Linux的vi編輯器的一些指令:
- 打開或創建文件:vi [filename]或者edit [filename],如果文件不存在則會創建一個新的文件。
- 文件的保存和退出:在命令行模式下,按esc鍵從插入模式切換到cmd模式,然后輸入冒號:,接着輸入
(1) w 保存
(2) w [filename] 另存為[filename]
(3) wq 保存退出
(4) wq [filename] 將文件保存為[filename]后退出
(5) q 不保存就退出
(6) x 同wq
感謝閱讀!