gcc 的簡易用法 編譯 引數與鏈結

2021-06-22 13:17:18 字數 1070 閱讀 6599

gcc 的簡易用法 (編譯、引數與鏈結)

前面說過, gcc 為 linux 上面最標準的編譯器,這個 gcc 是由 gnu 計畫所維護的,有興趣的朋友請自行前往參考。既然 gcc 對於 linux 上的 open source是這麼樣的重要,所以底下我們就列舉幾個 gcc 常見的引數,如此一來大家應該更容易了解原始碼的各項功能吧!

# 僅將原始碼編譯成為目標檔,並不製作鏈結等功能:

[root@www ~]# gcc -c hello.c

# 會自動的產生 hello.o 這個檔案,但是並不會產生 binary 執行檔。

# 在編譯的時候,依據作業環境給予最佳化執行速度

[root@www ~]# gcc -o hello.c -c

# 會自動的產生 hello.o 這個檔案,並且進行最佳化喔!

# 在進行 binary file 製作時,將鏈結的函式庫與相關的路徑填入

[root@www ~]# gcc sin.c -lm -l/usr/lib -i/usr/include

# 這個命令較常下達在最終鏈結成 binary file 的時候,

# -lm 指的是 libm.so 或 libm.a 這個函式庫檔案;

# -l 後面接的路徑是剛剛上面那個函式庫的搜尋目錄;

# -i 後面接的是原始碼內的 include 檔案之所在目錄。

# 將編譯的結果輸出成某個特定檔名

[root@www ~]# gcc -o hello hello.c

# -o 後面接的是要輸出的 binary file 檔名

# 在編譯的時候,輸出較多的資訊說明

[root@www ~]# gcc -o hello hello.c -wall

# 加入 -wall 之後,程式的編譯會變的較為嚴謹一點,

# 所以警告資訊也會顯示出來!

比較重要的大概就是這一些。另外,我們通常稱-wall 或者 -o 這些非必要的引數為旗標 (flags),因為我們使用的是 c 程式語言,所以有時候也會簡稱這些旗標為cflags ,這些變數偶爾會被使用的喔!尤其是在後頭會介紹的 make 相關的用法時,更是重要的很吶! ^_^

gcc的簡易用法(編譯 引數與鏈結)

將原始碼編譯為目標檔案,並不製作鏈結等功能 root seiitsu gcc c hello.c 會自動生成hello.c這個檔案,但是並不會生成可執行檔案 在編譯的時候,依據操作環境給予優化執行速度 root seiitsu gcc o hello.c c 會自動的生成hello.c這個檔案,並進...

Boost中timer的簡易用法

boost asio deadline timer timer timer io service timer expires from now boost posix time seconds 1 timer async wait boost bind sender handle timeout,t...

gcc鏈結引數 whole archive的作用

a.h extern void foo a.cpp include void foo printf foo n x.cpp include a.h int main foo return 0 makefile all x x x.cpp liba.so g g o liba.so liba.a g ...