Linux中的GDB调试学习(-)

GCC 是 GNU 编译器集合(GNU Compiler Collection)的首字母缩写词。它可以编译 C,C++,Objective-C,Fortran,Java 和 Ada 语言。

GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:

gcc [options] [filenames]

options为编译选项,GCC总共提供的编译选项超过100个,但只有少数几个会被频繁使用,我们仅对几个常用选项进行介绍。

     提示:编译选项是区分大小写的,一定要注意

假设我们编译一输出“Hello World”的程序:

/* Filename:helloworld.c */
# include < stdio. h>

int main( )
{
int i= 0;
printf ( "helloword!/n" ) ;
return 0;
}

 

最简单的编译方法是不指定任何编译选项:

gcc helloworld.c

它会为目标程序生成默认的文件名a.out,我们可用
-o 编译选项来为将产生的可执行文件指定一个文件名来代替a.out。例如,将上述名为helloworld.c的C程序编译为名叫helloworld的可执行文件,需要输入如下命令:

gcc –o helloworld helloworld.c


-Wall 开启编译器几乎所有常用的警告──强烈建议你始终使用该选项

-c 选项告诉GCC仅把源代码编译为目标代码而跳过汇编和连接的步骤;只编译,不连接成可执行文件,编译器只是由输入的.c为后缀的源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。

-o : output_filename,确定输出文件的名称为 output_filename,同时这个名称不能和源文件同名,如果不给出这个选项,GCC就给出预设的可执行文件a.out.


-S (大写)编译选项告诉GCC 在为 C代码产生了汇编语言文件后停止编译。GCC 产生的汇编语言文件的缺省扩展名是.s,上述程序运行如下命令:

gcc –S helloworld.c

将生成helloworld.c的汇编代码,使用的是AT&T汇编。

-E 选项指示编译器仅对输入文件进行预处理 。当这个选项被使用时,预处理器的输出被送到标准输出(默认为屏幕)而不是储存在文件里。生成的是.i文件,让gcc在 预处理生停止编译。

 -O (大写 ): 选项告诉GCC对源代码进行基本优化从而使得程序执行地更快;而-O2选项告诉GCC产生尽可能小和尽可能快的代码。使用-O2选项编译的速度比使用-O时慢,但产生的代码执行速度会更快。采用这个选项,整个源代码会在编译,连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是编译。连接的速度就相应地要慢一些。

-g :选项告诉GCC产生能被GNU调试器使用的调试信息以便调试你的程序,可喜的是,在GCC里,我们能联用-g和-O (产生优化代码)。要想对源代码进行调试,就必须加入这个选项。

-pg 选项告诉GCC在你的程序里加入额外的代码,执行时,产生gprof用的剖析信息以显示你的程序的耗时情况。

 

g++ :是用来编译C++程序的。该编译器能够读取并编译任何C++程序。用g++ -c *.cpp.


   要运行该程序,输入可执行文件的路径如下:
          代码:

           $ ./hello
helloword!


这将可执行文件载入内存,并使 CPU 开始执行其包含的指令。

          路径 ./ 指代当前目录,

          因此 ./hello 载入并执行当前目录下的可执行文件 ‘hello’。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值