gcc/g++ 命令的常用选项
使用g++编译CPP文件如果用gcc编译C++源文件时,加以下选项:-lstdc++,否则使用了C++操作的文件编译会出错。假如在程序中用到new delete操作,而不加此选项进行编译会出现以下错误信息:zch07eha01:/home/mrbt48/cpp> gcc -o RG RandomTest.cpp
/tmp/cciMHHyb.o(.text+0x2b): In function `main':
: undefined reference to `operator new(unsigned int)'
/tmp/cciMHHyb.o(.text+0x51): In function `main':
: undefined reference to `operator delete(void*)'
/tmp/cciMHHyb.o(.text+0x5e): In function `main':
: undefined reference to `operator new[](unsigned int)'
/tmp/cciMHHyb.o(.text+0x9f): In function `main':
: undefined reference to `RandomGenerator::getRandom(int*, int)'
/tmp/cciMHHyb.o(.text+0x10f): In function `main':
: undefined reference to `operator delete[](void*)'
/tmp/cciMHHyb.o(.gnu.linkonce.t._ZNSt8auto_ptrI15RandomGeneratorED1Ev+0xf): In function `std::auto_ptr<RandomGenerator>::~auto_ptr()':
: undefined reference to `operator delete(void*)'
/tmp/cciMHHyb.o(.gnu.linkonce.t._ZNSt8auto_ptrI15RandomGeneratorE5resetEPS0_+0x19): In function `std::auto_ptr<RandomGenerator>::reset(RandomGenerator*)':
: undefined reference to `operator delete(void*)'
/tmp/cciMHHyb.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status加入 -lstdc++选项后,成功通过:zch07eha01:/home/mrbt48/cpp> gcc -lstdc++ -o RG RandomTest.cpp

gcc/g++ 命令的常用选项格式(选项  解释)

-o FILE           指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.

-c           只编译生成目标文件,不链接

-m486        针对 486 进行代码优化。

-O0          不进行优化处理。

-O 或 -O1  优化生成代码。

-O2          进一步优化。

-O3 比 -O2 更进一步优化,包括 inline 函数。

-w           关闭所有警告,建议不要使用此项

-Wall        允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告

-werror      把所有警告转换为错误,以在警告发生时中止编译过程

-MM          输出一个make兼容的相关列表

-v           显示在编译过程的每一步中用到的命令

-E           只运行 C 预编译器。

-shared      生成共享目标文件。通常用在建立共享库时。

-static      链接静态库,即执行静态链接

-lFOO        链接名为libFOO的函数库

-g           在可执行程序中包含标准调试信息

-ggdb        在可执行程序中包含只有GNU debugger才能使别的达两条是信息

-O           优化编译过的代码

-ON          指定代码优化的级别为N,o<=N<=3

-ansi        支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突的部分(但这一选项并不能保证生成ANSI兼容的代码) 这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。

-pedantic  允许发出ANSI/ISO C标准所列出的所有警告

-errors      允许发出ANSI/ISO C标准所列出的所有错误

-traditional           支持Kernighan & Ritchie C语法(如用旧式语法定义函数);如果不知道这个选项的含义,也没有关系
-IDIRECTORY      指定额外的头文件搜索路径DIRECTORY。

-LDIRECTORY      指定额外的函数库搜索路径DIRECTORY。

-DFOO=BAR 在命令行定义预处理宏FOO,其值为BAR

-IDIRNAME 将DIRNAME加入到头文件的搜索目录列表中

-LDIRNAME 将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库

-DMACRO      以字符串“1”定义 MACRO 宏。

-DMACRO=DEFN     以字符串“DEFN”定义 MACRO 宏。

-UMACRO      取消对 MACRO 宏的定义。

gcc/g++ 命令的常用选项的更多相关文章

  1. gcc/g++ 命令的经常使用选项

    gcc/g++ 命令的经常使用选项格式(选项 解释) -o FILE 指定输出文件名称.在编译为目标代码时,这一选项不是必须的.假设FILE没有指定,缺省文件名称是a.out. -c 仅仅编译生成目标 ...

  2. zip命令的常用选项

    zip命令的常用选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大家都知道,在linux上一切皆文件,在实际生产环境中,如果我们需要部署一些系统的服务,我们会将一些软件包提前下 ...

  3. gcc/g++命令认识

    gcc & g++是gnu中最主要和最流行的c & c++编译器 . g++用来针对c++的处理命令,以.cpp为后缀,对于c语言后缀名一般为.c.这时候命令换做gcc即可. 下面以T ...

  4. gcc/g++ 命令

    gcc & g++现在是gnu中最主要和最流行的c & c++编译器 .g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可.其实是无关紧要的.其 ...

  5. mysqldump命令之常用选项

    ===============================================mysqldump常用选项-h, --host=name:服务器IP-u, --user=name:登录名 ...

  6. gcc/g++命令参数笔记

    1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. ...

  7. gcc/g++命令参数

    在windows环境下,我们运行一程序,只需要在VS中点击运行按键即可,VS帮我们做完了程序的预处理.编译.汇编.链接阶段 但是在linux环境下,我们只能借助gcc/g++完成这一系列的操作 -o参 ...

  8. grep命令的常用选项

    Linux的grep命令是使用正则表达式进行文本搜索的,一些对程序员很有用的选项如下: -i   忽略大小写 -w  进行普通文件匹配,而不是正则表达式匹配 -c  只统计每个文件中匹配行数(默认是输 ...

  9. 第七篇:gcc和arm-linux-gcc常用选项

    目录 一.gcc和arm-linux-gcc的常用选项 二.从.c文件到可执行文件过程 一.gcc和arm-linux-gcc的常用选项 常用选型 -v 查看gcc编译器的版本,显示gcc执行时的详细 ...

随机推荐

  1. 直接拿来用!最火的iOS开源项目(一~三)

    结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点.今天,我们将介绍20个在GitHub上非常受开发者欢迎的iO ...

  2. TJU 2248. Channel Design 最小树形图

    最小树形图,測模版.... 2248.   Channel Design Time Limit: 1.0 Seconds   Memory Limit: 65536K Total Runs: 2199 ...

  3. php中的var_dump()方法的详细说明

    首先看看实例: <?PHP$a = "alsdflasdf;a";$b = var_dump($a);echo "<br>";//var_du ...

  4. Spring JdbcTemplate查询实例

    这里有几个例子向您展示如何使用JdbcTemplate的query()方法来查询或从数据库提取数据.整个项目的目录结构如下: 1.查询单行数据 这里有两种方法来查询或从数据库中提取单行记录,并将其转换 ...

  5. 【docker】docker network常用命令参数

    1.帮助命令 docker network --help 2.查看docker默认三种网络 docker network ls 3.创建自定义网络,如果不指定,默认创建类型为bridge类型 dock ...

  6. SPSS19.0实战之多元线性回归

    线性回归数据来自于国泰安数据服务中心的经济研究数据库.网址:http://www.gtarsc.com/p/sq/.数据名称为:全国各地区能源消耗量与产量,该数据的年度标识为2006年,地区包括我国3 ...

  7. Oracle 乱码或则中文无法正确查询问题

    解决Oracle本身的字符集问题 oracle数据库的字符集更改 A.oracle server 端 字符集查询 select userenv('language') from dual 其中NLS_ ...

  8. GSM模块_STM32实现GPRS与服务器数据传输经验总结

    硬件环境 MCU:STM32F103RET6 (调试器:J-Link) GSM模块:Ai-Thinker_A6 (安信可)(还需要配一个串口打印工具,当初选这个模块纯粹是因为价格是最便宜的) ---- ...

  9. 如何在SharePoint的列表中使用通配符来filter出ListItem?

    一个朋友问我这样一个问题, 他想要快速从SharePoint的文档库中filter出来名字中先带有一个Q, 接着一些其他的字符, 后面再跟着有一个数字20这样的文件.   第一个想法就是修改Share ...

  10. Android -- ListView与Adapter

    ListView在Android中有着很重要的作用.Android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示. 背景              ...