Chinaunix首页 | 论坛 | 博客
  • 博客访问: 495349
  • 博文数量: 77
  • 博客积分: 1047
  • 博客等级: 少尉
  • 技术积分: 898
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-25 17:16
文章分类

全部博文(77)

文章存档

2016年(2)

2013年(2)

2012年(33)

2011年(40)

分类: LINUX

2011-10-19 19:43:39

常用GCC命令

1.设定编译出的 object 文件文件名或是可执行文件文件名:

  参数: -o out_put_filename

  说明: 指定编译出的文件名为 out_put_filename

  范例: 本例将源程序 'test.c' 编译成可执行文件,并设定文件名为 'test'
  gcc test.c -o test

 

2.在编译过程做最佳化
  参数: -O
  说明: 在编译过程做最佳化,以提升增快程序执行速度。
  范例: 本例将源程序 'test.c' 编译成可执行文件 'test',并在编译过程做最佳化'。 
  gcc -O test.c -o test

 

3.设定搜寻标头文件目录、程序库文件的目录及指定程序库文件。
  3.1设定搜寻标头文件目录
  参数: -Idir_name
  说明: 将目录 'dir_name' 设定为搜寻标头文件目录之一。

 

3.2设定搜寻程序库目录。
  参数: -Ldir_name
  说明: 将目录 'dir_name' 设定为搜寻程序库目录之一。

3.3设定程序库文件案。
  参数: -lname
  说明: 联结程序库 libname.a
  
  范例一:本例中假设你的程序文件名为test.c,数学函数如 sin等,所要联结的程序库为 libm.a
  gcc -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 test.c -o test
  范例二:本例中假设你的程序文件名为 test.c,使用到 X window 函数,所需的 include 文件放在 /usr/X11R6/include 中,所须联结的程序库放在 /usr/X11R6/lib,所要联结的程序库为 libX11.a
  gcc -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 test.c -o test 
  

提供进一步的资讯以便使用者找寻程序中的错误。

 

参数: -Wall
  说明: 输出较多的警告讯息,以便找出程序的错误。
  范例: 编译 test.c 时输出较多的警告讯息。
  gcc -Wall test.c
  
  参数: -g
  说明: 在编译出可执行文件时,附加执行时除错资讯,以供 gdb 读取 (若要使用 ABSoft 的除错程序,则须将参数改为 -gdwarf )
  范例: 将 'test.c' 编译成可执行文件 'test',并附加除错资讯。
  gcc -g test.c -o test

 

进阶参数
  1. 仅编译成 object 文件。
  参数: -c
  说明: 仅编译成 object 文件而不进行程序库联结。
  范例: test.c 编译成 object 文件 test.o
  gcc -c test.c -o test.o

 

  2. 联结数个 object 成可执行文件。
  范例: 'test1.o''test2.o' 和程序库联结後成为可执行文件 test
  gcc test1.o test2.o -o test
                   
  3. 观察宏展开情形:
  参数: -E
  说明:展开程序中的宏以便了解巨集是否依照预期方式展开。
  范例:将 test1.c 中的宏展开後储存到 test1.c.ext
  gcc -E test1.c > test1.c.ext
  
  4. 产生组合语言源程序:
  参数: -S
  范例:编译 test.c 产生对应的组合语言源程序文件 test.s

  gcc -S test.c -o test.s

 

阅读(1259) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~