日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux C文件编译

發(fā)布時間:2025/3/12 linux 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux C文件编译 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

設(shè)置編輯器

1.TAB鍵設(shè)置為4空格。

首先用vim打開/etc/vim/vimrc文件,這里面發(fā)現(xiàn)root用戶才能修改vimrc文件,所以用sudo命令暫時切換到root用戶。

在vimrc文件最后面,輸入set ts =4完成設(shè)置。

然后保存,關(guān)閉文件。

2.VIM編輯器顯示行號。

在上面的文件最后一行加入set nu即可。

編寫代碼

編譯代碼

Ubuntu下,C語言編譯器是GCC。

使用gcc -v查看GCC編譯器版本號。

可知,本機(jī)GCC編譯器版本為5.4.0。

Ubuntu自帶的GCC編譯器針對X86架構(gòu),只能編譯在X86架構(gòu)CPU上運(yùn)行的程序。

編譯在ARM上運(yùn)行的程序,需要ARM的GCC編譯器。

gcc main.c,編譯main.c文件。編譯完成以后,生成一個a.out文件,這就是編譯生成的可執(zhí)行文件。使用./a.out,運(yùn)行可執(zhí)行文件。

a.out文件的命名,是GCC編譯器自動命名的。使用gcc命令時,加上-o,可以指定生成的可執(zhí)行文件名字。

GCC編譯器

gcc命令格式:

gcc [選項(xiàng)] [文件名字]

選項(xiàng):

-c:只編譯不鏈接為可執(zhí)行文件,編譯器將輸入的.c 文件編譯為.o 的目標(biāo)文件。

-o:<輸出文件名>指定編譯結(jié)束以后的輸出文件名,如果不使用這個選項(xiàng),GCC默認(rèn)編譯出來的可執(zhí)行文件名字為 a.out。

-g:添加調(diào)試信息,如果要使用調(diào)試工具(如GDB)的話就必須加入此選項(xiàng),此選項(xiàng)指示編譯的時候生成調(diào)試所需的符號信息。

-O:對程序進(jìn)行優(yōu)化編譯,如果使用此選項(xiàng)的話整個源代碼在編譯、鏈接的的時候都會進(jìn)行優(yōu)化,這樣產(chǎn)生的可執(zhí)行文件執(zhí)行效率就高。

-O2:比-O 更幅度更大的優(yōu)化,生成的可執(zhí)行效率更高,但是整個編譯過程會很慢。

GCC編譯器,能夠檢測出錯誤類型,標(biāo)記錯誤發(fā)生在哪個文件、哪一行。

GCC編譯器編譯流程:預(yù)處理、編譯、匯編、鏈接。

預(yù)處理:展開所有頭文件,替換程序中的宏、解析條件編譯,并添加到文件中。

編譯:將經(jīng)過預(yù)處理的代碼編譯成匯編代碼。

匯編:將匯編語言文件編譯成二進(jìn)制目標(biāo)文件。

鏈接:將匯編出來的多個二進(jìn)制目標(biāo)文件鏈接在一起,形成最終的可執(zhí)行文件。

多個文件的編譯

例子:鍵盤輸入兩個整形數(shù)字,計(jì)算他們的和,將結(jié)果顯示在屏幕上。

//main.c #include <stdio.h> #include "input.h" #include "calcu.h"int main(int argc, char *argv[]) {int a, b, num;input_int(&a, &b);num = calcu(a, b);printf("%d + %d = %d\r\n", a, b, num); }//input.c #include <stdio.h> #include "input.h"void input_int(int *a, int *b) { printf("input two num:"); scanf("%d %d", a, b); printf("\r\n"); }//calcu.c #include "calcu.h" int calcu(int a, int b) {return (a + b); }//input.h #ifndef _INPUT_H #define _INPUT_Hvoid input_int(int *a, int *b); #endif//calcu.h #ifndef _CALCU_H #define _CALCU_Hint calcu(int a, int b); #endif

可以使用下面這個語句對三個文件編譯,生成名為main的可執(zhí)行文件。

gcc main.c calcu.c input.c -o main

編譯完之后,執(zhí)行main,流程如下。

但是以上方法存在問題:1.如果文件數(shù)量多,不方便。2.使用上面命令,編譯時所有文件會重新編譯,耗時多。3.沒有修改的文件不需要再次重新編譯。

一個解決方法如下:

gcc -c main.c gcc -c input.c gcc -c calcu.c gcc main.o input.o calcu.o -o main

-c選項(xiàng),只編譯不鏈接。

最后的命令是將所有.o文件鏈接成可執(zhí)行文件main。

如果修改input.c文件,只需要將input.c重新編譯成.o文件,執(zhí)行下面兩條命令:

gcc -c input.c gcc main.o input.o calcu.o -o main

但是,存在問題:修改文件多,不知道哪個文件修改過。

Makefile

以上,是通過在終端執(zhí)行g(shù)cc 命令完成C文件的編譯。文件很多,上面的方法就不好使了。

Makefile文件,描述哪些文件需要編譯或重新編譯。

Makefile里面,可以執(zhí)行系統(tǒng)命令。

使用make命令,可完成整個工程的自動編譯。

仍然對于上面的例子:鍵盤輸入兩個整形數(shù)字,計(jì)算他們的和,將結(jié)果顯示在屏幕上。

創(chuàng)建Makefile文件,輸入如下內(nèi)容:

使用Makefile編譯文件的過程如下。

修改了input.c文件之后,再執(zhí)行make命令,發(fā)現(xiàn)只是重新編譯了input.c文件。

如果工程沒有編譯過,工程中所有.c 文件都被編譯并且鏈接成可執(zhí)行程序。

工程中只有個別C文件被修改,只編譯這些被修改的C文件,并且鏈接成可執(zhí)行文件。

工程的頭文件被修改了,只需要編譯所有引用這個頭文件的C文件,并且鏈接成可執(zhí)行文件。

總結(jié)

以上是生活随笔為你收集整理的Linux C文件编译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99久久久国产 | 人妻激情文学 | 免费a v网站 | 一区二区成人免费视频 | 国产精品11 | 老司机在线观看视频 | 国产一区二区视频播放 | 99热这里只有精品在线 | 大屁股白浆一区二区三区 | 国产精品国产精品国产专区不片 | 日韩系列在线 | 九九热国产视频 | 国产亚洲精品久久久久婷婷瑜伽 | 美女天天操 | 欧美人狂配大交3d | 在线观看黄色网页 | 欧洲中文字幕 | 人妻内射一区二区在线视频 | 999精品视频| 人妻熟女一区二区aⅴ水 | 精品视频www | 欧美激情一区二区三区 | 激情内射亚洲一区二区三区爱妻 | 国产一区二区视频免费观看 | 久久波多野结衣 | 久久久亚洲一区二区三区 | 久久精品欧美日韩精品 | 免费激情网站 | 日本草草影院 | 在线免费看av网站 | 欧美日韩免费在线观看 | 日本啪啪片 | 中文字幕23页 | 天堂аⅴ在线最新版在线 | 五月激情婷婷网 | 99一级片 | 亚洲一区精品视频在线观看 | 五十路母| 99免费 | 国产亚洲精品成人无码精品网站 | 亚洲激情一区二区 | 女同一区二区三区 | 超碰在线免费 | 欧美天天性 | 超清av在线| 日韩成人av网址 | 极品淫少妇| 久久中文字幕在线观看 | 国产亚洲视频在线 | 亚洲丝袜av | 日屁视频| 国产真人做爰视频免费 | 亚洲视频免费观看 | 日韩精品久久久久久免费 | 色视屏| 亚洲97在线 | 绯色av一区二区三区高清 | 亚洲av成人精品一区二区三区在线播放 | www.青青草| 吻胸摸激情床激烈视频大胸 | 91日韩精品 | 成人片在线免费看 | 国产手机在线观看 | 欧美性猛交xxx乱大交3蜜桃 | 天堂网www. | 吻胸摸激情床激烈视频大胸 | 琪琪女色窝窝777777 | 醉酒壮男gay强迫野外xx | 欧美精品在欧美一区二区少妇 | 成人久久精品 | 日韩欧美亚洲综合 | 九九九九九热 | 修女也疯狂3免费观看完整版 | 丁香色网| 在线中文字日产幕 | www.777含羞草 | 在线91观看| 欧美精品v国产精品v日韩精品 | 欧美××××黑人××性爽 | 大屁股一区二区三区 | 国产伦精品视频一区二区三区 | 九九热视频这里只有精品 | 国产天堂一区 | 2019天天操| 成人午夜视频在线 | 又黄又爽又刺激的视频 | 三上悠亚三级 | 另类少妇人与禽zozz0性伦 | 污污网站在线观看视频 | 妹子干综合 | 久久成年视频 | 亚洲综合免费 | 国产综合区 | 国产一区二区精品 | 中文字幕一区二区在线播放 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 欧美xxxx黑人 | a天堂资源 | 日韩精品免费一区二区三区竹菊 |