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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gcc的使用

發布時間:2023/11/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gcc的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、gcc編譯過程示意圖?

?

分析:

hello程序是一個高級C語言程序,這種形式容易被人讀懂。為了在系統上運行hello.c程序,每條C語句都必須轉化為低級機器指令。然后將這些指令打包成可執行目標文件格式,并以二進制形式存儲器于磁盤中。

?

gcc常用選項:

選項名

作用

? -o

產生目標(.i.s.o、可執行文件等)

? -c

通知gcc取消鏈接步驟,即編譯源碼并在最后生成目標文件

? -E

只運行C預編譯器

? -S

告訴編譯器產生匯編語言文件后停止編譯,產生的匯編語言文件擴展名為.s

-Wall

使gcc對源文件的代碼有問題的地方發出警告

-Idir

dir目錄加入搜索頭文件的目錄路徑

-Ldir

dir目錄加入搜索庫的目錄路徑

-llib

鏈接lib

-g

在目標文件中嵌入調試信息,以便gdb之類的調試程序調試

?

舉例說明:

gcc -E hello.c -o hello.i(預處理) gcc -S hello.i -o hello.s(編譯) gcc -c hello.s -o hello.o(匯編) gcc hello.o -o hello(鏈接) gcc hello.c -o hello(直接編譯鏈接成可執行目標文件) gcc -c hello.c或gcc -c hello.c -o hello.o(編譯生成可重定位目標文件)

?

二、gcc編譯多文件

文件: hello_fn.h hello_fn.c main.c一次性編譯 gcc? hello_fn.c main.c –o newhello獨立編譯 gcc -Wall -c main.c -o main.o gcc -Wall -c hello_fn.c -o hello_fn.o gcc -Wall main.o hello_fn.o -o newhello


1. 測試代碼:

//hello_fn.c #include <stdio.h> #include "hello_fn.h"void hello(const char* name) {printf("hello %s!!!\n", name); } //hello_fn.h #ifndef _HELLO_FN_H #define _HELLO_FN_Hvoid hello(const char* name);#endif //main.c #include "hello_fn.h"int main(void) {hello("everyone");return 0; }

輸出結果:

方法1:

方法二:

?

總結

以上是生活随笔為你收集整理的gcc的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。