初識Linux下的C語言

2021-08-10 12:47:22 字數 2768 閱讀 7829

最近在複習c語言的相關知識,發現自己從來沒有在linux下使用過c語言,因此在慕課網上找到了相關的教程,學習了在linux環境下執行c程式的基礎知識。

記錄如下:

sudo apt-get install vim

sudo apt-get install gcc

在home目錄下建立乙個用於儲存c程式的目錄並進入該目錄:

cd ~

mkdir cworkspace

cd cworkspace

用vim建立乙個空白檔案hello.c,輸入測試**:

vim hello.c
測試**:

#include 

int main()

儲存並退出。

使用gcc編譯源**檔案:

gcc hello.c -o hello.out
其中-o選項的作用是指定目標檔案的檔名。

執行該目標檔案:

./hello.out
輸出結果為:

hello world!

一般較大的程式是需要多個原始檔編譯連線而成的,因此這裡再建立乙個max.c 檔案,檔案中**內容為:

int max(int a, int b)

else

}

然後再建立乙個名為max.h的標頭檔案,在裡面包含對max函式的宣告:

int max(int a, int b);
這樣,當其他原始檔需要使用到max函式的時候,只需要在檔案最前面包含該標頭檔案就可以了。

修改hello.c的**,在**中使用max函式:

#include 

#include "max.h"

int main()

使用gcc對源程式進行編譯:

gcc max.c hello.c -o hello.out
執行:

./hello.out
執行結果:

the max value is 34

當多人合作的時候,max.c 可能是由甲編寫的,而hello.c 可能是乙編寫的,甲想要單獨對max.c進行編譯,則應該:

gcc -c

max.c -o

max.o

-c 選項的作用是表明對max.c只編譯不執行連線操作。

然後,乙在使用max函式的時候,則要這樣編譯:

gcc max.o hello.c -o hello.out
現實中,乙個大程式有可能是多個人合作的,並且會有非常多的源程式,倘若每次修改後編譯程式都需要類似這樣是不現實的:

gcc a.o b.o c.o d.o .....hello

.c -o hello.out

因此可以使用到另乙個工具來提高開發效率,make。安裝make:

sudo apt-get install make
這裡再建立乙個新的c檔案min.c以及其對應的標頭檔案min.h,方便實驗,其內容類似於max.c和min.h,並在hello.c 中應用該程式:

min.c

int min(int a, int b)

else

}

min.h

int min(int a, int b);
hello.c

#include 

#include "max.h"

#include "min.h"

int main()

然後,為了使用make,需要建立乙個makefile檔案,裡面的內容使用遞迴的方式列出了可能需要使用到的gcc命令:

hello.out:max

.o min

.o hello.c

gcc max

.o min

.o hello.c -o hello.out

max.o:max

.c gcc -c

max.c -o

max.o

min.o:min

.c gcc -c

min.c -o

min.o

**解釋:

第一行**,冒號前面的是目標檔案,冒號後面的是生成該目標檔案所需要依賴的檔案列表

第二行**,使用第一行列出的依賴檔案生成目標檔案的gcc命令

後面的**的格式和含義同前兩行,僅當第一行所需要的依賴檔案不存在的時候,才會在後面的**中查詢相關的生成命令並執行,若後面要執行的命令所需要的依賴檔案也不存在,則繼續往後遞迴,直到命令可以順利執行為止,然後依次執行並返回。

當以上工作都準備就緒了,直接執行make命令即可編譯,生成可執行檔案hello.out:

make
總結:

在linux在進行c開發,先使用vim編輯相關的源程式檔案包括標頭檔案等,然後使用gcc命令編譯源程式生成可執行檔案,若檔案過多,可以使用make來提高開發效率。

初識C語言

一 計算機工作原理 處理單元 cpu 計算 處理程式 隨機訪問儲存器 ram 臨時儲存檔案和程式 硬碟 永久儲存器 等等。二 c語言程式設計七步 1 定義程式設計目標 2 設計程式 3 寫程式源 4 執行程式 5 編譯 6 除錯和測試 7 維護和修改。三 編譯器的任務 將源 編譯形成機器語言 四 鏈...

初識C語言

佔位符 d f c lf s ld 位操作符 轉義符 n r f ddd xhh 操作符 指令系統的每一條指令都有乙個操作符,它表示該指令應進行什麼性質的操作。字元的輸入輸出 getchar putchar 資料的格式化輸入輸出 scanf printf 的作用 表示該符號之前的內容已經結束。簡單的...

初識 C 語言

1.c 語言的起源 1972年,貝爾實驗室的丹尼斯 里奇 dennis ritch 和肯 湯普遜 ken thompson 在開發 unix 作業系統時設計了 c 語言。c 語言不完全是里奇的突發奇想而來,他是在 b 語言 湯普遜發明 的基礎上進行設計。至於 b 語言的起源,那是另乙個故事。c 語言...