GCC提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmain (only for C/ObjC and unless -ffreestanding) -Wmissing…
GCC(警告.优化以及调试选项) [介绍] gcc and g++分别是gnu的c & c++编译器   gcc/g++在执行编译工作的时候,总共需要4步   1.预处理,生成.i的文件 预处理器cpp2.将预处理后的文件不转换成汇编语言,生成文件.s 编译器egcs3.有汇编变为目标代码(机器代码)生成.o的文件 汇编器as4.连接目标代码,生成可执行程序 连接器ld 1.总体选项 -E   只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里   面.   例子用法:   gcc…
一 前言 GCC有很多的编译选项,警告选项:指定头文件.库路径:优化选项.本文针整理一下GCC的警告选项,主要依据http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html文档,并加上实际的体验. 二 基本概述 -w 禁止编译警告的打印.这个警告不建议使用.大约2012年底,公司代码进行一次大重构,另外从Codeblock集成开发环境转向Makefile管理,Makefile里面默认使用了-w,因而代码一直没有警告,今年个别项目开发中发现一些代码…
  autoconf生成的编译选项默认是"-g -O2".这个"-g"选项将我迷惑了,以为生成了GDB调试所需的信息,所以也就没有管后面的"-O2“选项.   实际上在用GDB进行调试的时候,单步跟踪代码,GDB显示的代码非常混乱.要么某些代码行未显示,要么中间插入了很多看起来像库函数的代码.甚至有时检查变量值都不对,但是根据此变量生成的后续结果却是正确的.   查看GCC文档,发现-g与-O选项虽然允许同时使用,但是会产生"surprise”的…
查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册 -O设置一共有五种:-O0.-O1.-O2.-O3和-Os. 除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用. 让我们来逐一考察各个优化等级: -O0:这个等级(字母"O"后面跟个零)关闭所有优化选项,也是CFLAGS或CXXFLAGS中没有设置-O等级时的默认等级.这样就不会优化代码,…
The History of GCC 1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's Not Unix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植.可优化.支持ANSI C的开源C编译器.GCC最初的全名是GNU C Compiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection.这里介绍的gcc是GCC的前端,C编译器. 警告信息     -Wall : 显示所有常用的编译警告信息. …
gcc/g++ 命令的经常使用选项格式(选项 解释) -o FILE 指定输出文件名称.在编译为目标代码时,这一选项不是必须的.假设FILE没有指定,缺省文件名称是a.out. -c 仅仅编译生成目标文件,不链接 -m486 针对 486 进行代码优化. -O0 不进行优化处理. -O 或 -O1 优化生成代码. -O2 进一步优化. -O3 比 -O2 更进一步优化.包含 inline 函数. -w 关闭全部警告,建议不要使用此项 -Wall 同意发出gcc能提供的全部实用的警告,也能够用-W…
[shell调试选项] 一些常用选项的用法: -n 只读取shell脚本,但不实际执行 -x 进入跟踪方式,显示所执行的每一条命令 -c "string" 从strings中读取命令 “-n”可用于测试shell脚本是否存在语法错误,但不会实际执行命令.在shell脚本编写完成之后,实际执行之前,首先使用“-n”选项来测试脚本是否存在语法错误是一个很好的习惯.因为某些shell脚本在执行时会对系统环境产生影响,比如生成或移动文件等,如果在实际执行才发现语法错误,您不得不手工做一些系统环…
1 error: expected expression before 'else' else之前无表达式. 2 error: lvalue required as left operand of assignment 左值问题. 3 error: invalid storage class for function 'XXXXXX' 在文件的某个地方,丢失了一个大括号‘}’. 常见gcc编译警告整理(开始) .warning: no newline at end of file 在文件最后一行…
打开一个Demo,结果没办法调试,运行出错,直接退出了, 明明加了断点的. 输出→调试→提示信息如下 . 使用调试生成配置或禁用调试选项“启用‘仅我的代码’”. . 检查调试选项下的“符号”设置.线程 (0x0). 程序“[] 数据中心客户端.vshost.exe”已退出,返回值为 - (0xe0434f4d). 解决方案: 请在debug模式进行调试...…