Chinaunix首页 | 论坛 | 博客
  • 博客访问: 122343
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 85
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-18 15:18
文章分类
文章存档

2017年(1)

2016年(1)

2015年(26)

2014年(3)

我的朋友

分类: LINUX

2015-06-23 14:11:10

原文地址:GCC常用选项 作者:DBAboy

-Wall  打开所有常用的编译警告,其中包括  (建议总是使用)
        -Wcomment    对嵌套的注释发出警告;
        -Wformat        警告象printf和scanf这种函数中格式化字符串的误用,即格式化字符串与对应的函数参数的类型不一致;
       -Wunused       警告有没有使用到的变量;
       -Wimplicit        对任何没有声明就使用的函数发出警告;
       -Wreturn-type  警告定义的函数没有返回类型但并没有声明返回void
-o      指定输出文件文件名,否则为a.out
-c      把指定源文件编译为对象文件,即.o文件
-S      将指定源文件编译为汇编程序,输出后缀为.s的汇编文件
-g      在对象文件(Object file)和可执行文件中存储另外的调试信息,可以使用gdb等调试工具对可执行文件进行调试跟踪;另外,配合core文件可以找到程序奔溃的环境。
-D     编译时设置宏定义,有两种形式:-D NAME 相当于#define NAME;-D NAME=DEFINITION 相当于 #define NAME DEFINITION

设置搜索路径
-----------------
默认情况下,GCC编译时在/usr/local/include/usr/include这两个路径搜索头文件;链接时,在/usr/local/lib/和/usr/lib/这两个目录下搜索库文件,如果库被安装在其他目录,如何使GCC去指定目录搜索呢,这就需要用到-L和-I选项:-L指定库文件的路径,-I指定头文件的路径。
为了避免手动输入搜索路径,可以将搜索路径添加至.bash_profile文件中,类似以下的格式:

点击(此处)折叠或打开

  1. export C_INCLUDE_PATH=/usr/local/pgsql/include:/net/include:$C_INCLUDE_PATH
  2. export LIBRARY_PATH=/usr/local/pgsql/lib:/net/lib:$LIBRARY_PATH
最终生成的可执行文件可能需要调用共享库,因此直接运行可能会提示无法打开共享对象文件(cannot open shared object file: No such file or directory),此时我们需要在环境变量LD_LIBRARY_PATH中添加其所需共享库的路径。
如果我们使用-static选项迫使gcc使用静态链接,此时会创建一个与静态库(.a文件)链接的可执行文件,运行时无需设置LD_LIBRARY_PATH。

参考文献
-----------
1. http://blog.chinaunix.net/uid-20355083-id-1963948.html
2. 
3. http://blog.csdn.net/maopig/article/details/7230311

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