GCC编译器的使用

news/2024/7/5 0:57:24

原文地址:http://www.myplaces.com.cn/index.php/action/viewspace/itemid/21751

看下面的例子:test.c

#include

main()

{

   char *str="I like Linux! I advices you jion in the Linux World";

   printf("%s/n",str);

   exit(0);

}

使用gcc编译

输入gcc -c test.c得到目标文件test.o。

-c命令表示对文件进行编译和汇编,但并不连接。

如果再健入gcc -o ../bin/test test.o,那么将得到名为test的可执行文件。

其实这两步不可以一气呵成,gcc ../bin/test test.c。如果程序没有错误就生成了可执行文件。

也许你会觉得基于命令行的编译器比不上如VC之类的集成开发环境,的确gcc的界面要改进,但是你一旦熟练了就会感到。gcc的效率如此之高。可以告诉大家的是Linux底下强大的C/C++集成开发环境Kdevelope和Vc一样强大,使用了Gcc编译器。

GNU C编译器,即gcc,是一个功能强大的ANSI(America National standar C兼容编译器,你会操作其他操作系统下的一种C编译器,能很快掌握GCC,我也是学了不久的GCC.

1、使用Gcc,Gcc是基于命令行的,使用时通常后跟一些选项和文件名。Gcc的基本用法如下:   gcc [options] [filenames]        命令行选项制定操作将对命令行上的每个给出的文件执行。

2、GCC的常用选项

  • 编译选项:gcc有超过100个的编译选项可用。具体的可以使用命令man gcc察看;
  • 优化选项:用GCC编译C/C++代码时,它会试着用最少的时间完成编译并且编译后的代码易于调试。易于调试意味着编译后的代码与源代码有同样的执行顺序,编译后的代码没有经过优化。有很多的选项可以告诉GCC在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件。这些选项中最典型的就是-O和-O2。-O选项告诉GCC对源代码进行基本优化。-O2选项告诉GCC产生尽可能小的和尽可能快的代码。还有一些很特殊的选项可以通过man gcc察看。
  • 调试和剖析选项:GCC支持数种调试剖析选项。在这些选项中最常用的是-g和-pg.-g选项告诉gcc产生能被GNU调试器(如gdb)使用的调试信息,以便调试用户的程序。-pg选项告诉gcc在用户的程序中加入额外的代码,执行时,产生gprof用的剖析信息以显示程序的耗时情况。

3、使用gdb

  • 使用方法:在命令行中健入gdb并按回车就可以运行gdb了,启动gdb后,能在命令行上制定很多的选项,也可以下面的方式来运行gdb: gdb filename      用这种方式运行gdb时,能直接指定想要调试的程序。在命令行上健入gdb -h得到一个有关gdb的选项的说明简单列表。
  • 编译代码以供调试,为了使gdb工作,必须使程序在编译时包含调试信息,调试信息包含程序里的每个变量的类型,在可执行文件里的地址映射以及源代码的行号。gdb利用这些信息使源代码和机器码相关联。
 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1476577



http://www.niftyadmin.cn/n/3658787.html

相关文章

kafka-manager部署安装

一、kafka-manager 简介 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均…

Torrent文件格式

刚找到的,不敢独享,发来看看 Torrent文件格式 BT种子文件格式 BT种子文件使用了一种叫bencoding的编码方法来保存数据。 bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),…

cygwin/gcc与MinGW

cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别?在实际工作中如何选择这两种编译器呢?cygwin/gcc完全可以和在linux下的gcc划等号,这个从boost库的划分中就可以看出来端倪,cygwin下的gcc和linux下的gcc使用的是相同的T…

kafka集群中jmx端口设置

jmx端口主要用来监控kafka集群的。 在启动kafka的脚本kafka-server-start.sh中找到堆设置,添加export JMX_PORT"9999" if [ "x$KAFKA_HEAP_OPTS" "x" ]; then export KAFKA_HEAP_OPTS"-Xmx1G -Xms1G" export JMX_PORT&…

bat按任意键开始结束的脚本

功能: 双击 .bat -> 按任意键开始 -> do something -> 按任意键结束代码: echo off echo 按任意键开始 pause echo 执行中.... (你要执行的东东) echo 按任意键结束 pause exit

虚基类释义

#include "stdafx.h"#include#includeusing namespace std;class person{//声明基类 protected: int age; char sex; string name;public: person(int a,char s,string nam){ agea; sexs; namenam; }};class teacher:virtual public person{protected: string tit…

在Linux下后台运行,程序运行前后台切换

一、为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用Xshell远程连接到Linux服务器。所以使程序在后台跑有以下两个好处: 1:我们这边是否关机不影响服务器的程序运行。(不…