解决的办法是,使用Linux提供的一种更加高效的通信方式—管道 。它可以用来同时连接两个程序,其中一个程序的输出将被直接作为另一个程序的输入,这样就可以避免使用临时文件,但编译时却需要消耗更多的内存 。
在编译过程中使用管道是由GCC的-pipe选项决定的 。下面的这条命令就是借助GCC的管道功能来提高编译速度的:
# gcc -pipe foo.c -o foo
在编译小型工程时使用管道,编译时间上的差异可能还不是很明显,但在源代码非常多的大型工程中,差异将变得非常明显 。
文件扩展名
在使用GCC的过程中,用户对一些常用的扩展名一定要熟悉,并知道其含义 。为了方便大家学习使用GCC,在此将这些扩展名罗列如下:
.c C原始程序;
.C C原始程序;
.cc C原始程序;
.cxx C原始程序;
.m Objective-C原始程序;
.i 已经过预处理的C原始程序;
.ii 已经过预处理之C原始程序;
.s 组合语言原始程序;
.S 组合语言原始程序;
.h 预处理文件(标头文件);
.o 目标文件;
.a 存档文件 。
GCC常用选项
GCC作为Linux下C/C重要的编译环境,功能强大,编译选项繁多 。为了方便大家日后编译方便,在此将常用的选项及说明罗列出来如下:
-c 通知GCC取消链接步骤,即编译源码并在最后生成目标文件;
-Dmacro 定义指定的宏,使它能够通过源码中的#ifdef进行检验;
-E 不经过编译预处理程序的输出而输送至标准输出;
-g3 获得有关调试程序的详细信息,它不能与-o选项联合使用;
-Idirectory 在包含文件搜索路径的起点处添加指定目录;
-llibrary 提示链接程序在创建最终可执行文件时包含指定的库;
-O、-O2、-O3 将优化状态打开,该选项不能与-g选项联合使用;
-S 要求编译程序生成来自源代码的汇编程序输出;
-v 启动所有警报;
-Wall 在发生警报时取消编译操作,即将警报看作是错误;
-Werror 在发生警报时取消编译操作,即把报警当作是错误;
-w 禁止所有的报警 。
小结
GCC是在Linux下开发程序时必须掌握的工具之一 。本文对GCC做了一个简要的介绍,主要讲述了如何使用GCC编译程序、产生警告信息、调试程序和加快GCC的编译速度 。对所有希望早日跨入Linux开发者行列的人来说,GCC就是成为一名优秀的Linux程序员的起跑线 。
推荐阅读
- Linux上安装GCC编译器过程
- Linux精彩桌面 GNOME桌面主题安装实例
- 【体验精彩】诺基亚6681最新详细评测之初印象
- 低端也精彩
- 逼真立体声的精彩 酷机康佳M929评测手记
- 父母在儿子婚礼上的精彩讲话稿
- 海尔V280,绝色纤薄,百万精彩
- 关于Linux操作系统下GCC的使用方法说明
- Linux系统平台下关于GCC编译及使用的方法
- S文手记:移动互联 精彩体验--海尔 V8800