预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LinuxLinux环境下程序编译环境下程序编译曙光信息产业(北京)有限公司提纲•1.GCC编译•2.Make简介•3.常用编译器一个简单的例子—hello.c•用vi编写源文件:#include<stdio.h>voidmain(){printf(“helloworldIam\n”);}•用gcc编译gcchello.c•运行./a.out第二个例子vimmain.cvimfx.c#include<stdio.h>#include<math.h>#defineN4voidmain()intfx(intx){{intsum=0r;intresult;for(i=1;i<=10;i++)result=pow(xN);{}r=fx(i);gccmain.cfx.cgcc–omainmain.cfx.csum=sum+r;./a.out./main}printf(“sumis%d\n”sum);gcc–cmain.c}gcc–cfx.cgcc–omanmain.ofx.oGCC简介(1/2)•gcc(GNUprojectCandC++compiler)是GNU推出的功能强大、性能优越的C语言编译器是GNU的代表作品之一。•gcc编译器能将C、FortranC++语言源程序、汇程式化序和目标程序编译、连接成可执行文件如果没有给出可执行文件的名字gcc将生成一个名为a.out的文件。•gcc最基本的用法是∶gcc[options][filenames]其中options就是编译器所需要的参数filenames给出相关的文件名称GCC简介(2/2)•在Linux系统中可执行文件没有统一的后缀系统从文件的属性来区分可执行文件和不可执行文件。•而编译器则通过后缀来区别输入文件的类别–.c为后缀的文件C语言源代码文件–.f为后缀的文件Fortran77语言源代码文件–.f90为后缀的文件Fortran90语言源代码文件–.C.cc或.cxx为后缀的文件是C++源代码文件–.h为后缀的文件是程序所包含的头文件–.o为后缀的文件是编译后的目标文件也是静态库文件–.so为后缀的文件动态库文件–.a为后缀的文件是由目标文件构成的静态链接库文件GCC常用编译参数(1/3)•-c:只编译不连接成为可执行文件编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件通常用于编译不包含主程序的子程序文件。•-ooutput_filename:确定输出文件的名称为output_filename同时这个名称不能和源文件同名。如果不给出这个选项gcc就给出预设的可执行文件a.out。•-g:产生符号调试工具(GNU的gdb)所必要的符号资讯要使用gdb对源代码进行调试我们就必须加入这个选项。•-O:对程序进行优化编译、连接采用这个选项整个源代码会在编译、连接过程中进行优化处理这样产生的可执行文件的执行效率可以提高但是编译、连接的速度就相应地要慢一些。•-O2:比-O更好的优化编译、连接当然整个编译、连接过程会更慢。GCC常用编译参数(2/3)•-Idirname:将dirname所指出的目录加入到程序头文件目录列表中是在预编译过程中使用的参数。C程序中的头文件包含两种情况:A)#include<stdio.h>B)#include“myinc.h