GCC常用编译选项

来源:互联网 发布:广告网站源码 编辑:程序博客网 时间:2024/04/29 19:10

GCC编译选项解析 

GCC是Linux下基于命令行的C语言编译器,其基本的使用语法如下。 

gcc [option |filename]… 

对于编译C++的源程序,其基本语法如下: 

g++ [option |filename]… 

其中option为GCC使用时的选项,而filename为需要GCC做编译的处理的的文件名。就GCC来说,其本身是一个十分复杂的的命令,合理的使用其命令选项可以有效地提高程序的编译效率、优化代码,GCC拥有众多的命令选项,有超过100个的编译选项可用,按其应有如下的分类。 

 

常用编译选项 

  • -c选项:这是GCC命令的常用选项。-c选项告诉GCC仅把源程序编译为目标代码而不做链接工作,所以采用该选项的编译指令不会生成最终的可执行程序,而是生成一个与源程序文件名相同的以.o为后缀的目标文件。例如一个Test.c的源程序经过下面的编译之后会生成一个Test.o文件 

            # gcc –c Test.h 


  • -S选项:使用该选项会生成一个后缀名为.s的汇编语言文件,但是同样不会生成可执行程序。

     

  • -e选项:-e选项只对文件进行预处理,预处理的输出结果被送到标准输出(比如显示器)。 


  • -v选项:在Shell的提示符号下键入gcc –v,屏幕上就会显示出目前正在使用的gcc版本的信息 


  • -x language:强制编译器指定的语言编译器来编译某个源程序。 

            例如下面的指令: 

            # gcc -x c++ p1.c 

            该指令表示强制采用C++编译器来编译C程序P1.c。 


  • -I<DIR>选项:库依赖选项,指定库及头文件路径 

在Linux下开发程序的时候,统常来讲都需要借助一个或多个函数库的支持才能够完成相应的功能。一般情况下,Linux下的大多数函数都将头文件放到系统/usr/include目录下,而库文件则放到/usr/lib目录下。但在有些情况下并不是这样的,在这些情况下,使用GCC编译时必须指定所需要的头文件和库文件所在的路径。-I选项可以向GCC的头文件搜索路径中添加新的目录<DIR>。例如,一个源程序所依赖的头文件在用户/home/include/目录下,此时就应该使用-I选项来指定。 

# gcc –I /home/include -o test test.c 


  • -L<DIR>:类似于上面的情况,用来特别指定所依赖库所在的路径 

如果使用不在标准位置的库,那么可以通过-L选项向GCC的库文件搜索路径中添加新的目录。例如,一个程序要用到的库libapp.so在/home/zxq/lib/目录下,为了能让GCC能够顺利地链接该库,可以使用下面的指令: 

# gcc -Test.c -L /home/zxq/lib/ -lapp –o Test 

这里的-L选项表示GCC去链接库文件libapp.so。在Linux下的库文件在命名时遵循了一个约定,那就是应该以lib三个字母开头,由于所有的库文件都遵循了同样的规范,因此在使用-L选项指定链接的库文件名时可以省去lib三个字母,也就是说GCC在对-lapp进行处理的时候,会自动去链接名为libapp.so的文件 


  • -static选项:GCC在默认情况下链接的是动态库,有时为了把一些函数静态编译到程序中,而无需链接动态库就采用-static选项,它会强制程序连接静态库。 


  • -o选项:在默认的状态下,如果GCC指令没有指定编译选项的情况下会在当前目录下生成一个名为a.out的可执行程序,例如:执行# gcc Test.c命令后会生成一个名为a.out的可执行程序。因此,为了指定生成的可执行程序的文件名,就可以采用-o选项,比如下名的指令: 

           # gcc –o Test Test.c 

           执行该指令会在当前目录下生成一个名为Test的可执行文件。 

原创粉丝点击