gnu编译器:介绍FreeBSD中的GNU C编译器



最基本开发环境必须具备 C语言支持能力C作为种编译型高级语言这就是说运行C的前要将其先编译成可执行由机器指令构成执行因此就需要使用个编译器来对C源代码进行处理FreeBSD使用是GNUC编译器GCC作为当前最流行、支持平台数量最多编译器其性能和效率也非常的好

按照 C语言习惯通常为hello.c:


$ cat hello.c



{

prf( “ Hello, world!n ” );

}


简单编译过程如下:


$ cc hello.c

$ ./a.out

Hello, world!


UNIX下缺省使用a.out作为生成文件名可以使用-o参数指出生成执行文件名

事实上前面编译生成执行文件过程由两步组成是生成目标文件通常使用 .o为后缀然后进行连接生成执行文件

因此可以使用 ar将多个目标文件组合成库文件而可以使用nm来查看库文件内容


$ cc -c f1.c

$ cc -c f2.c

$ ar c mlib.a f1.o f2.o

$ nm mlib.a


FreeBSD使用C语言编译器gcc是种非常流行多平台、高效率C语言编译器它提供了多种选项用于生成应用软件Software以下为常用些选项:

-L
定义连接库文件目录

-I
定义 C源码头文件目录

-o
后面跟参数为要生成执行文件

-O
进行编译优化可以指定使用区别优化级别从 O2到O6每个区别级别使用优化设置区别

相关选项还有定义生成指令码类型参数如 -m486生成486指令缺省gcc版本(2.7.2)不支持Pentium代码

-g
加入调试代码可以在完成后使用 strip命令删除用于调试信息

-c
仅仅进行编译而不进行连接生成目标文件

-fPic
生成相对地址代码可用于最后生成动态连接库

-
强制生成静态连接

-aout
生成 a.out格式执行文件、目标代码等缺省使用ELF格式

-elf
3.0的后为缺省设置生成ELF格式目标和执行代码


可以通过命令行参数查看当前使用 GNU C编译器版本:


$ cc -version

Gcc version 2.7.2.1


FreeBSD当前使用GNUC编译器有时候不是gcc编译器最新版本有时候最新版本软件Software不可避免有些小问题当然使用者完全可以自己手工升级到最新版本gcc这可是个有趣联系
Tags:  java编译器 c语言编译器 编译器 gnu编译器

延伸阅读

最新评论

发表评论