为了庆祝GCC30周年,Jakub Jelinek发布了30年以来的首个Beta版本GCC7.17.1,它是面向GNU系统开发打造的开源的免费的编译器,它的非常大的分支功能,可以给所有平台使用。

GCC7.1特色功能
GCC7.1是一次重大更新,包括了GCC6.x和之前旧版中所没有的新功能。在C++前端方面,目前已试验性支持C++17草案,包括:-std=c++1z和-std=gnu++1z选项。libstdc++库也大部分实现了C++17草案库特性了。
本次发布在诊断方面的大量改进,包括定位改进、定位访问、错误拼写的建议、修复建议等,也加上了很多新的警告提示。
用法介绍
在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是编译器所需要的参数,filenames给出相关的文件名称。
-c,只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、链接,当然整个编译、链接过程会更慢。
-Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶
A)#include
B)#include “myinc.h”
其中,A类使用尖括号(< >),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而B类,预处理程序在目标文件的文件夹内搜索相应文件。
-v gcc执行时执行的详细过程,gcc及其相关程序的版本号
原版gcc manual该选项英文解释
Print (on standard error output) the commands executed to run the stages of compilation. Also print the version number of the compiler driver program and of the preprocessor and the compiler proper.
编译程序时加上该选项可以看到gcc搜索头文件/库文件时使用的搜索路径!
更新说明
GCC 7版本系列与以前的GCC版本有很多不同。 其中一些是错误修复的结果,一些旧的行为已经故意改变,以支持新的标准,或放宽符合标准的方式来促进编译或运行时性能。 其中一些这些更改是肉眼不可见的,在从旧版本更新时不会出现问题。
但是,其中一些更改是用户可见的,并可能在移植到GCC 7时引起悲伤。本文档是为了识别常见问题并分享解决方案而进行的。 如果您有改进建议,请告诉我们
预处理器问题
C语言问题
C ++语言问题
使用模板时更严格的规则
下载仅供下载体验和测试学习,不得商用和正当使用。
下载体验
