文档详情

gcc的使用.doc

发布:2018-02-05约2.7千字共3页下载文档
文本预览下载声明
Gcc的使用 Gcc编译器可以支持C、C++、object C、JAVA等诸多语言,经过合适的配置可以生产交叉开发工具,gcc工具在/opt/EmbedSky/4.3.3的目录下,主要包括如下工具: cpp:GNU C预处理器,是一个宏指令处理器,GNU C编译器在编译前自动使用 gcc:C编译器 g++:C++编译器 gcj:gcc的java前端,可以生产执行速度更快的二进制本地执行代码,而不是java byte code binutils是一组二进制工具集,包括as、ld、addr2line、ar、gprof、mn、objcopy、objdump、ranlib、size、strings、strip等 as:GNU汇编器工具,用于把汇编语言代码转换成二进制代码,并存放在object文件中 ld:GNU链接器工具,用于确定相对地址,把多个object文件、起始代码段、库等链接起来,最终成为一个可执行文件 addr2line:把执行中得地址映射到源文件的对应行 ar:创建归档文件,修改/替换库中得object文件,向库中添加/提取object文件 objdump:复制和转换object文件 strip:去掉执行文件中得多余信息(如调试信息),可减小执行文件的大小 gcc支持的输入文件的格式: 1:c语言源文件,后缀为.c 2:静态链接库,后缀为.a 3:c++源文件,后缀为.C、.cc 4:程序包含的头文件,后缀为.h 5:经预处理的c源文件,后缀为.i 6:经预处理过的c++源文件,后缀为.ii 7:object-c源文件,后缀为.m 8:编译后的目标文件,后缀为.o 9:汇编源文件,后缀为.s 10:经预编译的汇编源文件,后缀为.S 11:动态链接库(程序运行时用),后缀为.so gcc命令的的基本格式: #gcc [命令行选项] 待生成的文件名 需编译的文件名(可多个源文件) 命令参数: 1:-o filename :指定输出文件名,将经过gcc处理过的结果存为文件“filename”,这个文件可以是预处理文件、汇编文件、目标文件或最终可执行文件。如果“FILE”没有指定,那么生产的可执行默认文件名为a.out,目标文件默认为source.o,汇编文件默认为source.s,生产的预处理文件发送到标准输出设备 2:-E:该选项表示只运行预处理编译器进行预处理就停止,而不做编译、汇编和链接 3:-c:该选项表示只要求编译器进行编译,而不进行链接,生成以源文件的文件名命名但把其后缀由.c或.cc变成.o的目标文件 4:-D name[=definition]:将名为name的宏定义的字符串definition,如果括号中的部分默认则宏定义为字符串1 5:LDIRNAME:将DIRNAME加入库文件的搜索目录列表中 6:-static:静态链接库,即执行静态链接,不支持动态共享库,默认情况下gcc只连接共享库 7:IFOO:链接名为libFOO的函数库 8:-g(gdb):在可执行程序中包含标准调试信息,方便程序调试,如果使用括号中的选项,表示加入gdb扩展的调试信息,以便使用gdb来进行调试 9:-O[0、1、2、3]:优化编译过的代码,括号中的部分为优先级别,默认情况下为2级别优化,0为不优化,注意高级的优化不一定得到效率更高的代码 10:-ansi:支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与标准有冲突的部分,如:asm或typeof关键字,注意,这一项并不能保证生成ANSI兼容代码 11:-pedantic:运行发出ANSI/ISO C标准所列出的所有警告 12:-pedantic[-errors]:运行发出ANSI/ISO C标准所列出的所有错误,括号中的选项表示支持KernighanRitchie C语法 13:-w:禁止所有警告 14:-Wall:运行发出gcc能提供的所有有用的警告,也可以用-W{warning}来标记指定的警告 15:-werror:把所有的警告转换为错误 16:-MM:输出一个Make兼容的相关列表(可以简化我们编写makefile) 17:-v:显示在编译过程的每一步中用到的命令 18:-Idir:将dir目录加到搜寻头文件的列表中去,并优先于gcc默认的搜寻目录,在多个-I选项的情况下,按命令行上-I选项的前后顺序搜索,dir可使用相当路径 19:-Ldir:将dir目录加到搜寻-L选项指定的函数库文件的目录列表中去,并优先于gcc默认的搜寻目录,在多个-L选项的情况下,按命令行上-L选项的前后顺序搜索,dir可使用相当路径 例如:最简单的命令格式:#gcc
显示全部
相似文档