GCC常用命令描述(轉)

post0發表於2007-08-11
GCC常用命令描述(轉)[@more@]

作者:wstruecolor

unix下開發常用的編譯工具gcc,我對於gcc的瞭解知道的很少,

一般用到的也就是gcc -o xx xx.cpp

今天翻了一下gnu的gcc manual 花了點時間總結了一下,

給大家分享一下!呵呵,希望對大家有幫助.

這裡介紹一下gcc的常用命令選項(可以參考gnu gcc manual).

1. gcc 支援的語言.

GCC 全稱是GNU Compiler Collection ,包含一些主要編譯器支援語言 C, C++, Objective-C, Java, Fortran, and Ada的編譯.

2.gcc 命令選項

當執行gcc的時候通常會經過四個處理過程,preprocessing, compilation, assembly and linking .可以透過加不同的選項來中止到某個過程.

a.總的選項.

-c -S -E -o file -pipe -pass-exit-codes

-x language -v -### --help --target-help --version

編譯器編譯檔案要經過四個階段,如上所述.是按順序來進行的.

編譯器根據輸入檔案的字尾來決定進入哪個階段的處理過程:

file.c c 檔案要經過豫處理.

file.i c原始檔不必進行豫處理。

file.ii c++原始檔不必進行豫處理。

file.h c/c++豫編譯標頭檔案.

file.cc

file.cp

file.cxx

file.cpp

file.CPP

file.c++

file.C c++原始檔要經過豫處理.

file.hh

file.H c++標頭檔案轉換為豫處理標頭檔案.

file.s

Assembler code.

file.S

Assembler code which must be preprocessed

-x language =========選項是為了指定語言告訴gcc 檔案是什麼語言的,

不必要預設的字尾識別.

languge 可以是:

c c-header cpp-output

c++ c++-header c++-cpp-output

objective-c objective-c-header objc-cpp-output

assembler assembler-with-cpp

ada

f77 f77-cpp-input ratfor

java

treelang

-x none 用字尾識別,關閉語言識別.

-c 只是編譯不連線,生成的都是目標檔案. .c, .i, .s ==> .o

-S 只是編譯不進行彙編,生成彙編程式碼. .c, .i ==>.s

-E 只是進行豫編譯,不做其他處理.

-o file 把輸出檔案輸出到file裡.

-v 列印出編譯器內部編譯的各個過程的命令列資訊.和編譯器的版本.

-### 同上,但是不真正執行命令.

-pipe 編譯器編譯時各個階段的資訊是儲存到臨時檔案的,如果你不想

用臨時檔案的話可以透過管道也行.這個命令選項就用上了.不過有些系統不支援.

編者注:無雙網友補充

還有其它的選項 如-On(n=1,2,3) -arch=pentium4 這些用於最佳化的

-g用於除錯的

還有prof支援的 可以判斷程式的執行效率

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944774/,如需轉載,請註明出處,否則將追究法律責任。

相關文章