欢迎来到天天文库
浏览记录
ID:38179424
大小:31.00 KB
页数:3页
时间:2019-05-24
《Linux上的CC++编译器gccegcs详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux上的C/C++编译器gcc/egcs详解Linux中最重要的软件开发工具是GCC。GCC是GNU的C和C++编译器一.运行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两个源文件,现在要编译生成一个
2、计算阶乘的程序。 清单factorial.c#include#includeintfactorial(intn){if(n<=1)return1;elsereturnfactorial(n-1)*n;} 清单main.c#include#includeintfactorial(intn);intmain(intargc,char**argv){intn;if(argc<2){printf("Usage:%sn",argv[0]);return-1;}else{n=atoi(argv[1]);printf("Factorialof%dis%d.",n,fact
3、orial(n));}return0;} 利用如下的命令可编译生成可执行文件,并执行程序:$gcc-ofactorialmain.cfactorial.c$./factorial5Factorialof5is120. GCC可同时用来编译C程序和C++程序。一般来说,C编译器通过源文件的后缀名来判断是C程序还是C++程序。在linux中,C源文件的后缀名为.c,而C++源文件的后缀名为.C或.cpp。 但是,gcc命令只能编译C++源文件,而不能自动和C++程序使用的库连接。因此,通常使用g++命令来完成C++程序的编译和连接,该程序会自动调用gcc实现编
4、译。 假设我们有一个如下的C++源文件(hello.C):#includevoidmain(void){ cout<<"Hello,world!"<5、义MACRO宏。 -E只运行C预编译器。 -g生成调试信息。GNU调试器可利用该信息。 -IDIRECTORY指定额外的头文件搜索路径DIRECTORY。 -LDIRECTORY指定额外的函数库搜索路径DIRECTORY。 -lLIBRARY连接时搜索指定的函数库LIBRARY。 -m486针对486进行代码优化。 -oFILE生成指定的输出文件。用在生成可执行文件时。 -O0不进行优化处理。 -O或-O1优化生成代码。 -O2进一步优化。 -O3比-O2更进一步优化,包括inline函数。 -shared生成共享目标文件。通常用在建立共6、享库时。 -static禁止使用共享连接。 -UMACRO取消对MACRO宏的定义。 -w不生成任何警告信息。 -Wall生成所有警告信息。
5、义MACRO宏。 -E只运行C预编译器。 -g生成调试信息。GNU调试器可利用该信息。 -IDIRECTORY指定额外的头文件搜索路径DIRECTORY。 -LDIRECTORY指定额外的函数库搜索路径DIRECTORY。 -lLIBRARY连接时搜索指定的函数库LIBRARY。 -m486针对486进行代码优化。 -oFILE生成指定的输出文件。用在生成可执行文件时。 -O0不进行优化处理。 -O或-O1优化生成代码。 -O2进一步优化。 -O3比-O2更进一步优化,包括inline函数。 -shared生成共享目标文件。通常用在建立共
6、享库时。 -static禁止使用共享连接。 -UMACRO取消对MACRO宏的定义。 -w不生成任何警告信息。 -Wall生成所有警告信息。
此文档下载收益归作者所有