gcc编译器使用方法 arm-linux-gcc常用参数

转载 2015年11月19日 14:16:16

以文件example.c为例说明它的用法 
0.  arm-linux-gcc  -o example example.c 
   不加-c、-S、-E参数,编译器将执行预处理、编译、汇编、连接操作直接生成可执行代码。 
    -o参数用于指定输出的文件,输出文件名为example,如果不指定输出文件,则默认输出a.out

1.  arm-linux-gcc  -c -o example.o example.c 
   -c参数将对源程序example.c进行预处理、编译、汇编操作,生成example.o文件 
   去掉指定输出选项"-o example.o"自动输出为example.o,所以说在这里-o加不加都可以

2. arm-linux-gcc  -S -o example.s example.c 
   -S参数将对源程序example.c进行预处理、编译,生成example.s文件 
   -o选项同上

3. arm-linux-gcc  -E -o example.i example.c 
   -E参数将对源程序example.c进行预处理,生成example.i文件(不同版本不一样,有的将预处理后的内容打印到屏幕上) 
   就是将#include,#define等进行文件插入及宏扩展等操作。 
   
4. arm-linux-gcc  -v -o example example.c 
加上-v参数,显示编译时的详细信息,编译器的版本,编译过程等。

5. arm-linux-gcc  -g -o example example.c 
-g选项,加入GDB能够 使用 的调试信息, 使用 GDB调试时比较方便。

6. arm-linux-gcc  -Wall -o example example.c 
-Wall选项打开了所有需要注意的警告信息,像在声明之前就 使用 的函数,声明后却没有 使用 的变量等。

7. arm-linux-gcc  -Ox -o example example.c 
-Ox 使用 优化选项,X的值为空、0、1、2、3 
0为不优化,优化的目的是减少代码空间和提高执行效率等,但相应的编译过程时间将较长并占用较大的内存空间。

8. arm-linux-gcc    -I /home/include -o example example.c 
-Idirname: 将dirname所指出的目录加入到程序头文件目录列表中。如果在预设系统及当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。

9. arm-linux-gcc    -L /home/lib -o example example.c

-Ldirname:将dirname所指出的目录加入到库文件的目录列表中。在默认状态下,连接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的库文件,这个选项告诉连接程序,首先到-L指定的目录中去寻找,然后再到系统预设路径中寻找。

10. arm-linux-gcc  –static -o libexample.a example.c

静态链接库文件

gcc在命令行上经常使用的几个选项是: 
-c   只预处理、编译和汇编源程序,不进行连接。编译器对每一个源程序产生一个目标文件。 
-o file  确定输出文件为file。如果没有用-o选项,缺省的可执行文件的输出是a.out,目标文件和汇编文件的输出对source.suffix分别是source.o和source.s,预处理的C源程序的输出是标准输出stdout。 
-Dmacro 或-Dmacro=defn   其作用类似于源程序里的#define。例如:% gcc -c -DHAVE_GDBM -DHELP_FILE=\"help\" cdict.c其中第一个- D选项定义宏HAVE_GDBM,在程序里可以用#ifdef去检查它是否被设置。第二个-D选项将宏HELP_FILE定义为字符串“help”(由于 反斜线的作用,引号实际上已成为该宏定义的一部分),这对于控制程序打开哪个文件是很有用的。 
-Umacro   某些宏是被编译程序自动定义的。这些宏通常可以指定在其中进行编译的计算机系统类型的符号,用户可以在编译某程序时加上 -v选项以查看gcc缺省定义了哪些宏。如果用户想取消其中某个宏定义,用-Umacro选项,这相当于把#undef macro放在要编译的源文件的开头。 
-Idir   将dir目录加到搜寻头文件的目录列表中去,并优先于在gcc缺省的搜索目录。在有多个-I选项的情况下,按命令行上-I选项的前后顺序搜索。dir可使用相对路径,如-I../inc等。 
-O   对程序编译进行优化,编译程序试图减少被编译程序的长度和执行时间,但其编译速度比不做优化慢,而且要求较多的内存。 
-O2   允许比-O更好的优化,编译速度较慢,但结果程序的执行速度较快。 
-g   产生一张用于调试和排错的扩展符号表。-g选项使程序可以用GNU的调试程序GDB进行调试。优化和调试通常不兼容,同时使用-g和-O(-O2)选项经常会使程序产生奇怪的运行结果。所以不要同时使用-g和-O(-O2)选项。 
-fpic或-fPIC   产生位置无关的目标代码,可用于构造共享函数库。 
以 上是gcc的编译选项。gcc的命令行上还可以使用连接选项。事实上,gcc将所有不能识别的选项传递给连接程序ld。连接程序ld将几个目标文件和库程 序组合成一个可执行文件,它要解决对外部变量、外部过程、库程序等的引用。但我们永远不必要显式地调用ld。利用gcc命令去连接各个文件是很简单的,即 使在命令行里没有列出库程序,gcc也能保证某些库程序以正确的次序出现。 
gcc的常用连接选项有下列几个: 
-Ldir   将dir目录加到搜寻-l选项指定的函数库文件的目录列表中去,并优先于gcc缺省的搜索目录。在有多个-L选项的情况下,按命令行上-L选项的前后顺序搜索。dir可使用相对路径。如-L../lib等。 
-lname   在连接时使用函数库libname.a,连接程序在-Ldir选项指定的目录下和/lib,/usr/lib目录下寻找该库文件。在没有使用-static选项时,如果发现共享函数库libname.so,则使用libname.so进行动态连接。 
-static   禁止与共享函数库连接。 
-shared   尽量与共享函数库连接

arm-linux-gcc 常用参数讲解 gcc编译器使用方法

我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面介绍一些arm-linux-gcc编译工具的一些常用命令参数给大家。 在此之前首先介绍下编译器的工作...
  • Aifler
  • Aifler
  • 2014年04月18日 14:07
  • 1320

gcc编译器常用选项的含义

gcc(GNU Compiler Collection)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++、Object C、Jave等多种语言编写的程序。gcc又可以作为交叉编译工具...
  • arackethis
  • arackethis
  • 2015年02月01日 10:59
  • 1422

gcc编译器常用使用方法

Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统...
  • deng_sai
  • deng_sai
  • 2013年09月06日 10:50
  • 563

arm-linux-gcc 常用参数讲解

我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。 在此之前首先介绍下编译器的工作过程,在...
  • Nickter
  • Nickter
  • 2013年09月03日 00:47
  • 572

arm-linux-gcc常用参数

需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。 在此之前首先介绍下编译器的工作过程,在使...
  • sdd220
  • sdd220
  • 2017年11月13日 15:50
  • 45

我常用的gcc编译器选项

本文来小结一下我常用的gcc编译器选项:       1. gcc test.c       这个最直接, 会在当前目录下生成a.out, 然后执行./a.out就可以运行程序了。 我在玩程序的时候,...
  • stpeace
  • stpeace
  • 2015年04月24日 22:03
  • 2564

arm-linux-gcc的安装/编译u-boot错…

下载arm-linux-gcc-4.3.2 安装交叉编译工具链: 1、复制arm-linux-gcc-4.3.2.tgz到根目录下 2、解压即:#sudo tar -xvzf arm-linux-...
  • Wind4study
  • Wind4study
  • 2016年11月27日 19:38
  • 546

如何使用GCC编译器

目录: GCC rules开始...预编译编译汇编连接另外两个重要选项调试小结站点链接   摘要: 要想读懂本文,你需要对C语言有基本的了解,本文将介绍如何使用gcc编译器。 ...
  • u012359618
  • u012359618
  • 2016年06月26日 19:48
  • 3611

gcc编译器使用方法

gcc在命令行上经常使用的几个选项是: -c 只预处理、编译和汇编源程序,不进行连接。编译器对每一个源程序产生一个目标文件。-o file 确定输出文件为file。如果没有用-o选项,缺省的可...
  • sdd220
  • sdd220
  • 2017年11月13日 17:01
  • 67

在终端使用命令卸载交叉编译工具

用命令行卸载交叉编译工具
  • w746805370
  • w746805370
  • 2016年05月18日 11:07
  • 4613
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gcc编译器使用方法 arm-linux-gcc常用参数
举报原因:
原因补充:

(最多只允许输入30个字)