设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> Linux >> Linux系统上C/C++编译器gcc/egcs详解
精品推荐
Linux点击TOP10
·Linux 内核文件系统与设备操作流程分析
·Linux上五十个最佳的FireFox扩展插件
·Linux系统中如何正确安装摄像头驱动
·Linux命令Man解释:PPPD(8) :点对点daemon协议
·虚拟网络计算工具VNC使用指南
·用Ghost备份Linux系统的方法
·Linux 核心--4.内存管理
·Ubuntu Linux与Windows系统多启动的配置
·Linux操作系统内核的时钟中断机制
·linux传统网络配置命令与ip高级路由命令
操作系统点击TOP10
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·网吧操作系统制作与优化2007最终版
·FAT32转换NTFS的方法
·修改注册表优化XP技巧20招
·Linux 内核文件系统与设备操作流程分析
·如何改变桌面等C盘文件的路径
·使用BCDEdit修改Windows Vista启动菜单
·windows Server 2003 搭建域环境
·注册表综合应用100例
·Windows Vista 激活不求人
精选专题

Linux系统上C/C++编译器gcc/egcs详解

作者: 来源: 时间:2007-12-3 11:01:32

一、运行 gcc/egCS

    Linux 中最重要的软件开发工具是 GCC.GCC是 GNU的 C和 C++编译器。实际上,GCC 能够编译三种语言:C 、C++ 和ObjectC (C 语言的一种面向对象扩展)。利用 gcc命令可同时编译并连接 C和 C++源程序。

    #DEMO#: hello.c

    如果你有两个或少数几个C 源文件,也可以方便地利用GCC 编译、连接并生成可执行文件。例如,假设你有两个源文件 main.c 和 factorial.c两个源文件,现在要编译生成一个计算阶乘的程序。

    清单 factorial.c

#include 
#include 
int factorial (int n)
{
if (n <= 1)
return 1;
else
return factorial (n - 1) * n;
      }


    清单 main.c

#include 
#include 
int factorial (int n);
int main (int argc, char **argv)
{
int n;
if (argc < 2) {
printf ("Usage: %s n ", argv [0]);
return -1;
}
else {
n = atoi (argv[1]);
printf ("Factorial of %d is %d. ", n, factorial (n));
}
return 0;
}


    利用如下的命令可编译生成可执行文件,并执行程序:

$ gcc -o factorial main.c factorial.c 
$ ./factorial 5 
Factorial of 5 is 120.


    GCC 可同时用来编译 C 程序和 C++ 程序。一般来说,C 编译器通过源文件的后缀名来判断是 C 程序还是 C++ 程序。在 linux 中,C 源文件的后缀名为 .c,而 C++ 源文件的后缀名为 .C 或 .cpp。

    但是,gcc 命令只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库连接。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。

    假设我们有一个如下的 C++ 源文件(hello.C):

#include 
void main (void)
{
 cout << "Hello, world!" << endl;
}


    则可以如下调用 g++ 命令编译、连接并生成可执行文件:

$ g++ -o hello hello.C 
$ ./hello 
Hello, world!


   
    二、gcc/egcs 的主要选项

    -ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,例如 asm 或 typeof 关键词。

    -c 只编译并生成目标文件。

    -DMACRO 以字符串“1”定义 MACRO 宏。

    -DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。

    -E 只运行 C 预编译器。

    -g 生成调试信息。GNU 调试器可利用该信息。

    -IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。

    -LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。

    -lLIBRARY 连接时搜索指定的函数库LIBRARY。

    -m486 针对 486 进行代码优化。

    -o FILE 生成指定的输出文件。用在生成可执行文件时。

    -O0 不进行优化处理。

    -O 或 -O1 优化生成代码。

    -O2 进一步优化。

    -O3 比 -O2 更进一步优化,包括 inline 函数。

    -shared 生成共享目标文件。通常用在建立共享库时。

    -static 禁止使用共享连接。

    -UMACRO 取消对 MACRO 宏的定义。

    -w 不生成任何警告信息。

    -Wall 生成所有警告信息。


Linux系统上C/C++编译器gcc/egcs详解 相关文章:
Linux系统上C/C++编译器gcc/egcs详解 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com