GNU 程式設計 -- gcc 編譯器

GNU 程式設計

GNU 程式簡介

GNU 與 C 語言

gcc 編譯器

glibc 函式庫

make 建置

ld 連結器

as 組譯器

ar 函式庫

objdump

objcopy

訊息

相關網站

參考文獻

最新修改

簡體版

English

GNU 的 C 語言編譯器稱為 gcc, 這是一個相當強大的編譯工具, 同時也具備了組譯與連結的功能, 表格一顯示了 gcc 常用的參數名稱與使用方法。

表格一、gcc 編譯器的常用參數及其意義

參數 範例 說明
-S gcc -S sum.c -o sum.s 要求 gcc 產生組合語言程式碼
-E gcc -E hello.c -o hello.i 只執行巨集展開, 但不產生目的檔
-D gcc -DDEBUG sum.c -o sum 定義 #define DEBUG 後才編譯
-g gcc -g sum.c -o sum 編譯時加入除錯資訊, 讓 gdb 可遠端除錯
-c gcc -c hello.c -o hello.o 編譯並組譯程式碼, 但不做連結
-I gcc -c -I /home/ccc/include -o hello.o hello.c 指定引用檔 (*.h) 的路徑
-L gcc -L /home/ccc/lib -o hello hello.o 指定函式庫 (*.a) 的路徑
-l gcc -L /home/ccc/lib -lm -lpthread -o hello hello.o 指定函式庫的名稱
-shared gcc -shared a.o b.o c.o -o libabc.so 產生共享函式庫 (*.so)
-fPIC gcc -g -rdynamic -fPIC -o test test.c 輸出 position-independent code, 一般在輸出動態連結函式庫時使用
-Werror gcc -Werror sum.c -o sum.s 將警告視為錯誤, 一旦有警告就不輸出目標檔
-O0 gcc -S -O0 sum.c -o sum.s 不進行最佳化 (預設)
-O1 gcc -S -O1 sum.c -o sum.s 第 1 級的最佳化 (較差)
-O2 gcc -S -O2 sum.c -o sum.s 第 2 級的最佳化
-O3 gcc -S -O3 sum.c -o sum.s 第 3 級的最佳化 (最高等級)
-dr gcc -c -dr sum.c -o sum.o 輸出 RTL 中間碼

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License