Chinaunix首页 | 论坛 | 博客
  • 博客访问: 880216
  • 博文数量: 254
  • 博客积分: 5350
  • 博客等级: 大校
  • 技术积分: 2045
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 13:27
文章分类

全部博文(254)

文章存档

2015年(1)

2014年(9)

2013年(17)

2012年(30)

2011年(150)

2010年(17)

2009年(28)

2008年(2)

分类: C/C++

2011-11-10 11:06:08

gcc 与 g++ 区别

(1)gcc和g++都是GNU(组织)的一个编译器。

(2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。

(3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。(个人觉得这条是最重要的)

4。 c++ 头文件一般不加.h后缀,否则编译时会产生警告( using namespace std;)


警告选项:

g++ -Wall -W atest.cpp -o atest 显示所有警告

g++  -Wreturn-type atest.cpp     警告函数声明返回值但没有包括返回语句

g++ -Wcomment atest.cpp -o atest 警告寻找是否发生了注释类错误
g++ -Wall -Werror atest.cpp -o atest  将警告变成错误输出

g++ -Wtraditional atest.cpp 对非传统结构或ANSI C++ 和 ANSI C中不允许的结构发出警告
g++ -traditional atest.cpp   变成错误,如果不带大写W

g++ -ansi atest.cpp   只接受ANSI定义的结构
g++ -pedantic atest.cpp   当程序使用GNU待定特性时发出警告,其它编译器可能不认识GNU特性

中间编译
-E  预处理之后停止,不编译
-S  编译之后停止,不汇编
-C  汇编之后停止,不链接

优化:

优化选项以-O开始,单独使用或者加上数字0,1,2,3之一。

如: gcc -O1 welcome.cpp;  -O0为缺省设置,不优化

特定优化:

-ffast-math  选项以-f开始,加上选项名。-f后面没有空格

如: g++ -fno-inline -O1 welcome.cpp

优化后的可执行代码和未优化的可执行代码是不同的,要注意


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