最近在複習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 語言...