文章插圖

文章插圖
配置終端的C開發環境
在Ubuntu 終端系統中開發,需要依賴一些命令行工具,對比使用Windows 下的IDE集成開發環境會有一些不同之處 。
在Linux 下一般使用gcc 編譯C 語言代碼,gcc 可以通過管理工具進行安裝,以Ubuntu 16.04為例
sudo apt-get install gcc新建一個C 語言程序進行編譯演練,可以使用vim, 或者是touch命令來創建一個文件 。vim test.c / touch test.c#include <stdio.h>int main(){printf("study gcc\n");return 0;}代碼編輯完成后,使用gcc 命令進行編譯$ lstest.c$ gcc -o test test.c-o 參數指定可執行程序名,test.c 是源碼文件,當編譯完成后,當前目錄下會出現一個可執行文件test$ lstesttest.c在命令行下,將可執行程序運行起來,看是否會輸出預期的內容:$ ./teststudy gcc多文件編譯一般程序都是由多個文件組成,編譯多個文件程序,需要將所有源碼文件傳給編譯器 。
以C語言為例,將test.c 拆解成兩個文件,創建test2.c
touch test2.c
#include <strdio.h> void print_test(){printf("study gcc\n");}test2.c 中定義一個函數,函數名為print_test, 用于輸出 “study gcc”.在test.c中直接調用print_test 即可:
test.c
void print_test();int main(){print_test();return 0;}按照以下步驟,編譯由兩個文件組成的程序:gcc -o test test.c test2.c解析編譯流程程序編譯可以進一步分成為編譯(Compile) 和鏈接(Link) 這兩個階段
我們可以分階段編譯test.c, test2.c,源文件如下:
$ lstest.ctest2.c編譯test2.c文件, 生成test2.o 對象文件:$ gcc -c test2.c$ lstest2.ctest2.otest.c編譯test.c文件,生成test.o 對象文件:$ gcc -c test.c$ lstest2.ctest2.otest.ctest.o最后鏈接兩個對象文件,生成可執行程序:$ gcc -o test test.o test2.o$ ./teststduy gcc關于分階段編譯分階段編譯的最大好處是,可以進行部分編譯 ==> 只是編譯有變更的部分
在上面的例子中,test.c 有變更,而test2.c 沒有變更,那么,我們只需要編譯test.c 生成新的test.o 對象文件,最后再跟test2.o 文件鏈接生成新的可執行文件test 。
可以省去編譯test2.c 這段時間,如果文件較多,節省的編譯時間就會很長 。
使用Makefile 自動編譯
touch Makefile
.DEFAULT_GOAL := runtest2.o: test2.cgcc -o test2.o -c test2.ctest.o: test.cgcc -o test.o -c test.ctest: test2.o test.ogcc -o test test2.o test.orun: test./testclean:rm -f *.orm -f test$ lsMakefiletest2.ctest.c$ makegcc -o test2.o -c test2.cgcc -o test.o -c test.cgcc -o test test2.o test.o./teststduy gcc執行make 命令$ lsMakefiletest2.ctest.c$ makegcc -o test2.o -c test2.cgcc -o test.o -c test.cgcc -o test test2.o test.o./teststduy gccMakefile 大致可以理解成 目標 、 依賴 以及 構建指令。缺省情況下,Makefile定義的第一個目標為默認目標,在第一行顯式定義了默認目標,由于沒有變更,再次構建時自動省略編譯環節 。
$ make./teststudy gcc定義用于清理編譯結果的目標 ==》 clean:【ubuntu下載gcc出錯 ubuntu沒有gcc編譯器怎么裝】
$ lsMakefiletesttest2.ctest2.otest.ctest.o$ make cleanrm -f *.orm -f test$ lsMakefiletest2.ctest.c
- vmware官網免費的下載哪個 vmware官方下載方法
- 個人網站模板免費下載 個人網站 模板
- wps字體庫免費下載 wps字體庫打包下載
- 一鍵生成app軟件下載 一鍵app生成器
- 百度網盤下載慢怎么解決2022 百度網盤下載慢怎么解決知乎
- 如何下載b站視頻到電腦上 mac 如何下載b站視頻到電腦本地
- sap是什么系統軟件電腦桌面是什么樣子的 sap是什么系統軟件怎么下載
- java unzip解壓為空 下載的zip文件是空的
- android電子市場游戲免費下載 Android電子市場
- ie10瀏覽器官方下載安卓版 ie10瀏覽器官方下載電腦版
