close

#-------------------------------------------------------------------------------
#===================
# GCC
#===================
#處理編譯任務時,分成下面4個步驟:
#1.前處理 (preprocessing):使用前處理器(cpp) 將程式檔轉換成 .i (or .ii): .c ->.i 或 .cpp -> .ii 檔
#2.編譯 (compiling):將前處理後的檔轉換成組合語言,轉換成 .s 檔
#3.組譯 (assembly):使用組譯器(gas)將組合語言組譯為 .o 檔
#4.鏈結 (linking):將 .o 檔鏈結成為可執行檔或是函式庫
#-------------------------------------------------------------------------------
#===================
# 常用參數
#===================
#-E -- 只進行前處理,不進行編譯,結果由 console 直接輸出。
#-C -- 進行前處理時保留註解。
#-S -- 產生組合語言程式碼(.s)。
#-I -- 指定 INCLUDE PATH (標頭檔.h的搜尋目錄)。
#-L -- 指定 LIBRARY PATH (連結時要用到的函式庫的搜尋目錄)。
#-O -- 最佳化程度,預設就是-O1,你可以指定成-O2或-O3,數字越大表示最佳化程度越好,但是會增加編譯時間。
#-c -- 只編譯不進行連結(產生一個跟原始碼相同名稱的目的檔 .o 檔),留待後面才來連結(link)。
#-l -- 指定要連結的函式庫,(e.g. libc)。
#-o -- 把建立的二位元檔給另外名字,因為可執行檔最後內定名字是a.out。
#-g -- 把偵錯資訊也編譯進去,這樣debug工具ddd,gdb才能除錯。
#-W -- 編譯時出錯時,顯示錯誤訊息的條件。
#-Wall -- 在編譯時顯示更多的警告訊息。這個參數相當有用,特別是找不到libs/headers之類的問題。事實上它並未完全顯示 cc 所能注意到的各項警告訊息。
#-ansi -- 使用相容ANSI標準的編譯方式。關閉 cc 特有的某些特殊非ANSI C標準功能。 事實上它並不保證你的程式會完全符合 ANSI 標準。
#-pedantic -- 全面關閉 cc 所特有的非 ANSI C 標準功能。
#-Dname -- 定義 macro,同 #define。 (條件編譯,搭配#ifdef #define用。如果有defined才編譯)
#-Uname -- 解除 macro 定義,同 #undef。 (條件編譯,搭配#ifdef #define用。如果有defined才編譯)
#Linking
#-static -- 只使用靜態函式庫
#-share -- 儘量使用共享函式庫
#-shared-libgcc -- 指定連結共享的 libgcc
#-static-libgcc -- 指定連結靜態的 libgcc
#-nostartfiles -- 不使用 standard system startup files (常用於 cross-compiling 時)
#-nodefaultlibs -- 不使用系統預設的標準函式庫
#-nostdlib -- 不使用標準函式庫及 startup files
#-nostdinc++ -- 不使用 c++ 標準的 #include 檔
#-fPIC -- 產生 position-independent code,常用於共享函式庫的產生
#-Wl,option -- 將 option 傳給 linker,如果有多個 option ,使用逗號(,)隔開。
#e.g. gcc -shared -o myshared -Wl,--whole-archive -llib1 -llib2 -Wl,--no-whole-archive a.o b.o c.o
#-------------------------------------------------------------------------------
#===================
# automatic variables
#===================
#$* 目標檔之主檔名(if the target is dir/a.foo.b and the target pattern is a.%.b then dir/a.foo)
# $@ 目標檔之全檔名
# $% 程式庫成員中的檔名元素
# $ $(BINNAME).lst
# ls -lh $


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 BB 的頭像
    BB

    Welkin小窩

    BB 發表在 痞客邦 留言(0) 人氣()