龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

GCC常用命令描述

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
作者:wstruecolor unix下开发常用的编译工具gcc,我对于gcc的了解知道的很少, 一般用到的也就是gcc -o xx xx.cpp 今天翻了一下gnu的gcc manual 花了点时间总结了一下, 给大家分享一下!呵呵,希

  作者: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支持的 可以判定程序的运行效率

  

精彩图集

赞助商链接