1. 程式人生 > >makefile相關知識(編譯選項)

makefile相關知識(編譯選項)

編譯選項

本節內容大多摘錄於:http://blog.csdn.net/earbao/article/details/53153853

這裡說幾個常常使用到的選項,具體內容請檢視上面的網頁:

使用gcc -v --help可以列出gcc的所有可選項

  1. 用法:gcc [選項] 檔案...  
  2. 選項:  
  3.   -pass-exit-codes         在某一階段退出時返回最高的錯誤碼  
  4.   --help                   顯示此幫助說明  
  5.   --target-help            顯示目標機器特定的命令列選項  
  6.   --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]  
  7.                            顯示特定型別的命令列選項  
  8.   --version                顯示編譯器版本資訊  
  9.   -dumpspecs               顯示所有內建 spec 字串  
  10.   -dumpversion             顯示編譯器的版本號  
  11.   -dumpmachine             顯示編譯器的目標處理器  
  12.   -print-search-dirs       顯示編譯器的搜尋路徑  
  13.   -print-libgcc-file-name  顯示編譯器伴隨庫的名稱  
  14.   -print-file-name=<庫>    顯示 <庫> 的完整路徑  
  15.   -print-prog-name=<程式>  顯示編譯器元件 <程式> 的完整路徑  
  16.   -print-multiarch         Display the target's normalized GNU triplet, used as  
  17.                            a component in the library path  
  18.   -print-multi-directory   顯示不同版本 libgcc 的根目錄  
  19.   -print-multi-lib         顯示命令列選項和多個版本庫搜尋路徑間的對映  
  20.   -print-multi-os-directory 顯示作業系統庫的相對路徑  
  21.   -print-sysroot           顯示目標庫目錄  
  22.   -print-sysroot-headers-suffix 顯示用於尋找標頭檔案的 sysroot 字尾  
  23.   -Wa,<選項>               將逗號分隔的 <選項> 傳遞給彙編器  
  24.   -Wp,<選項>               將逗號分隔的 <選項> 傳遞給前處理器  
  25.   -Wl,<選項>               將逗號分隔的 <選項> 傳遞給連結器  
  26.   -Xassembler <引數>       將 <引數> 傳遞給彙編器  
  27.   -Xpreprocessor <引數>    將 <引數> 傳遞給前處理器  
  28.   -Xlinker <引數>          將 <引數> 傳遞給連結器  
  29.   -save-temps              不刪除中間檔案  
  30.   -save-temps=<arg>        不刪除中間檔案  
  31.   -no-canonical-prefixes   生成其他 gcc 元件的相對路徑時不生成規範化的  
  32.                            字首  
  33.   -pipe                    使用管道代替臨時檔案  
  34.   -time                    為每個子程序計時  
  35.   -specs=<檔案>            用 <檔案> 的內容覆蓋內建的 specs 檔案  
  36.   -std=<標準>              指定輸入原始檔遵循的標準  
  37.   --sysroot=<目錄>         將 <目錄> 作為標頭檔案和庫檔案的根目錄  
  38.   -B <目錄>                將 <目錄> 新增到編譯器的搜尋路徑中  
  39.   -v                       顯示編譯器呼叫的程式  
  40.   -###                     與 -v 類似,但選項被引號括住,並且不執行命令  
  41.   -E                       僅作預處理,不進行編譯、彙編和連結  
  42.   -S                       編譯到組合語言,不進行彙編和連結  
  43.   -c                       編譯、彙編到目的碼,不進行連結  
  44.   -o <檔案>                輸出到 <檔案>  
  45.   -pie                     Create a position independent executable  
  46.   -shared                  Create a shared library  
  47.   -x <語言>                指定其後輸入檔案的語言  
  48.                            允許的語言包括:c c++ assembler none  
  49.                            ‘none’意味著恢復預設行為,即根據檔案的副檔名猜測  
  50.                            原始檔的語言