部分g++(gcc)选项

原创 2015年07月07日 13:55:40


编译一个使用了开源库的hello world例子,有一些编译选项不理解,记录下来以便学习

1. 编译选项

g++ -std=c++11 -Wextra -Wall -pedantic -pthread -fPIC -O2 -g -I/usr/local/include/caf -o hello_world.o -c hello_world.cpp

-std:指定语言标准,只有编译C或C++时才有用,除了c++11,还有c90、c89、c99、iso9899:1999、c1x、gnu90、c++98等等
-Wextra:打印出更多的警告信息,比开启 -Wall 打印的还多
-Wall:开启所有警告标志,会打印出大多数警告
-pedantic:用于保证代码规范满足ISO C和ISO C++标准, 不允许使用任何扩展以及不满足ISO C和C++的代码, 遵守 -std 选项指定的标准
-pthread: 支持多线程, 使用pthread库
-fPIC: PIC 是 position-independent code的意思, 此选项去除独立位置代码, 适合与动态链接
-O2: 优化级别, O2比基本再高一级
-g: 在对象文件中生成调试信息
-I: 添加头文件的搜索路径
-o: 输出到指定文件
-c: 编译源码, 但是不链接


2. 链接选项

g++ -std=c++11 -Wextra -Wall -pedantic -pthread -fPIC -O2 -g hello_world.o -o hello -rdynamic /usr/local/lib/libcaf_core.so.0.13.2 /usr/local/lib/libcaf_io.0.13.2
-rdynamic: 将-export-dynamic标志传递到ELF链接器, 连接器会把所有符号都加到动态符号表(如果没有这个选项就只加使用到的). 当用户使用 "dlopen" 或者想在程序中获取callstack时, 可以使用此选项



gcc中的-w -W和-Wall选项

今天在看一个makefile时看到了gcc -W -Wall....这句,不明其理,专门查看了gcc的使用手册。-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编...
  • m7548352
  • m7548352
  • 2015年10月30日 23:20
  • 14619

gcc/g++ -O 优化选项说明

查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册 -O设置一共有五种:-O0、-O1、-O2、-O3和-Os。 除了-O...
  • jmppok
  • jmppok
  • 2013年12月04日 17:20
  • 6902

gcc 和g++编译选项详解

gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告:            -Waddress -Warray-bounds (only with...
  • lxlll1985
  • lxlll1985
  • 2014年04月01日 23:03
  • 3317

GCC/G++编译命令选项.pdf

  • 2009年11月19日 21:02
  • 106KB
  • 下载

Linux中gcc,g++常用编译选项

-x language filename   设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定...
  • liuying_1001
  • liuying_1001
  • 2011年08月16日 04:40
  • 810

gcc/g++ 命令的常用选项

来自:http://www.cnblogs.com/skyofbitbit/p/3676538.html gcc/g++ 命令的常用选项 gcc/g++ 命令的常用选项 使用g++编译CPP文件...
  • lys07962000
  • lys07962000
  • 2016年10月30日 10:35
  • 463

linux gcc g++编译命令选项

gcc/g++在执行编译工作的时候,总共需要4步  1.预处理,生成.i的文件[预处理器cpp]  2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]  3.有汇编变为目标...
  • zhanghan0928
  • zhanghan0928
  • 2017年04月07日 18:38
  • 92

(转)Linux中gcc g++常用编译选项以及makefile的编写

Linux中gcc,g++常用编译选项 -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀...
  • yzfcer
  • yzfcer
  • 2015年05月26日 23:17
  • 154

gcc/g++编译优化选项(一)

在进行C++编译时,有时候因为没有进行编译优化而导致程序运行效率慢,因此在这里介绍了gcc/g++编译优化的选项...
  • hit_090420216
  • hit_090420216
  • 2015年04月06日 10:49
  • 4877

gcc选项-g与-rdynamic的异同

gcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如-ggdb。-g是一个编译选项,即在源...
  • u011843461
  • u011843461
  • 2015年01月28日 14:27
  • 1174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:部分g++(gcc)选项
举报原因:
原因补充:

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