GNU C编译器的gnu11和c11】的更多相关文章

国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11 gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必须用这个. c11:这个就是纯c11的标准,不带gnu扩展. 可以在Makefile中声明: CFLAGS=-std=gnu11 -g -Wall 或者,纯标准的c11,玩linux的要慎用,因为linux代码到处都是gnu的痕迹哦,哈哈 CFLAGS=-std=c11 -g -Wall 如何改变M…
GNU的编译器可以编译C或C++语言, 编译C语言使用gcc,编译C++语言使用g++ 如果是使用Linux或者Unix系统(Mac)可以使用以下命令: gcc -v 或者 g++ -v 来查看是否安装了相关的编译器,如果出现类似以下的信息,说明已经安装了:…
以Fruit和Apple为例进行分析: Fruit和Apple的定义如下: 通过在两种编译环境下的测试(GNU GCC & VS2015),可以发现这两种编译器的对象模型是一样的,如下图所示: Apple是Fruit的子类,此为两级的单链继承结构.在Apple和Fruit对象内部,均遵循以下原则: 对象中的第一个成员是指向虚表的虚指针: 对象是按照声明中的顺序被保存的: 然而,两种编译器的内存的位对齐方式略有不同. 对于GNU GCC编译器而言,其遵循以下的原则: 按声明中出现的顺序进行内存分配…
总览 (SYNOPSIS) gcc [ option | filename ]... g++ [ option | filename ]... 警告 (WARNING) 本手册页 内容 摘自 GNU C 编译器 的 完整文档, 仅限于 解释 选项 的 含义. 除非 有人 自愿 维护, 否则 本手册页 不再 更新. 如果 发现 手册页 和 软件之间 有所矛盾, 请 查对 Info 文件, Info 文件 是 权威 文档. 如果 我们 发觉 本手册页 的 内容 由于 过时 而 导致 明显 的 混乱…
转自:https://blog.csdn.net/haluoluo211/article/details/71141093 哪个版本的gcc才支持c11 2017年05月03日 19:25:43 FishBear_move_on 阅读数:23323   而知,低版本的gcc不支持c11. (而我此处的eglibc 2.17,和那人的glibc-2.16.0,都是需要支持c11的gcc的) 所以此处想要去搞清楚,什么版本的,哪个版本的,gcc,才支持c11. [解决过程] 1.google搜: g…
1.1 Linux 内核驱动中的奇怪语法 大家在看一些 GNU 开源软件,或者阅读 Linux 内核.驱动源码时会发现,在 Linux 内核源码中,有大量的 C 程序看起来“怪怪的”.说它是C语言吧,貌似又跟教材中的写法不太一样:说它不是 C 语言呢,但是这些程序确确实实是在一个 C 文件中.此时,你肯定怀疑你看到的是一个“假的 C 语言”! 比如,下面的宏定义: #define mult_frac(x, numer, denom)( \ { \ typeof(x) quot = (x) / (…
1. GCC版本是否支持C11 C89=C90:gcc选项是:-ansi, -std=c90 or -std=iso9899:; 带了GNU扩展的:-std=gnu90 C94=C95:gcc选项:-std=iso9899: C99:gcc选项:-std=c99 or -std=iso9899: 未完成C99标准之前,叫做C9X 带了GNU扩展的:-std=gnu99 C11:gcc选项是-std=c11 or -std=iso9899: 未完成C11标准之前,叫做C1X 带了GNU扩展的:-s…
而知,低版本的gcc不支持c11. (而我此处的eglibc 2.17,和那人的glibc-2.16.0,都是需要支持c11的gcc的) 所以此处想要去搞清楚,什么版本的,哪个版本的,gcc,才支持c11. [解决过程] 1.google搜: gcc c11 就可以看到: 2 Language Standards Supported by GCC 而明白: C89=C90:gcc选项是:-ansi, -std=c90 or -std=iso9899:1990; 带了GNU扩展的:-std=gnu…
1. 什么是Just In Time编译器? Hot Spot 编译 当 JVM 执行代码时,它并不立即开始编译代码.这主要有两个原因: 首先,如果这段代码本身在将来只会被执行一次,那么从本质上看,编译就是在浪费精力.因为将代码翻译成 java 字节码相对于编译这段代码并执行代码来说,要快很多. 当 然,如果一段代码频繁的调用方法,或是一个循环,也就是这段代码被多次执行,那么编译就非常值得了.因此,编译器具有的这种权衡能力会首先执行解释后的代 码,然后再去分辨哪些方法会被频繁调用来保证其本身的编…
我们在网上已经习惯用“Linux”来称呼Linux操作系统了,然而,偶尔也用“GNU/Linux”来称呼和指代同样的操作系统和软件.同时人们也在争论这两种称呼哪个更合适. 本文将不会选边站队,仅力图向你讲述这两种称呼的来历,并解释”Linux”与“GNU/Linux”之间的微妙差异. 什么是“Linux”? “Linux”这个词仅仅代表内核——操作系统的核心.其他软件, 比如用来编译内核的GNU C编译器,bash命令行终端,GNU Shell组件(包括所有你用到的基本命令),X.org图形服务…
转自译言网:http://article.yeeyan.org/view/88497/59257/ 第一个软件共享社区 当我在1971年开始在麻省理工人工智能实验室工作时, 我成为一个已经存在多年的软件共享社区的一员. 共享软件曾经不仅限于我们这个特定的社区,它的历史与计算机一样长,就如分享烹饪技巧的历史与做饭的历史一样长一样.但我们曾经做得比很多事情更多. 人工智能实验室曾用一个分时计算操作系统叫互斥分时操作系统ITS(the Incompatible Timesharing System),…
c 编译器大全 看了下nginx的auto/cc下的目录,nginx对多种c语言的编辑器都进行了支持.才知道c语言有那么多编辑器. 编译器原理 所谓编译器,就是执行下面的三步骤: 1 将目标语言转换为AST抽象语法树 2 优化抽象语法树 3 将抽象语法树转化为适用于各个系统架构的指令集 各种编译器 acc HP aC++ compiler, 指的是HP C/aC++ 开发者工具包中包含的编译器,特指HP C/ANSI C compiler编译器. 它主要是在惠普服务器上运行的. HP Integ…
Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU C 是对标准 C 进行的一系列扩展,以增强标准 C 的功能. 1. 零长度和变量长度数组 GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用.例如: struct var_data { int len; char data[0]; }; char data[0] 仅仅意味着程序中通过 var_data 结构体实例的 data[index] 成员可以…
1.3 GCC 工具 1.3.1 binutils 工具集 工具 描述 addr2line 给出一个可执行文件的内部地址,addr2line 使用文件中的调试信息将地址翻译成源代码文件名和行号. ar 这是一个程序,可通过从文档中增加.删除和析取文件来维护库文件.通常使用该工具是为了创建和管理连接程序使用的目标库文档. as GNU 汇编器.实际上它是一族汇编器,因为它可以被编译或能够在各种不同平台上工作. c++filt 程序接受被 C++编译程序转换过的名字(不是被重载的) ,而且将该名字翻…
1. GNU C 编译器 2. GNU make 项目管理工具 3. 创建和使用函数库 4. GNU C 函数库(glibc) 1.GNU C 编译器 使用 c语言 编写的代码,运行前必须经过编译和链接,最终生成可执行程序.(编译,编译语言源代码:链接,链接引用的函数库.)这个孕育的过程,需要一些工具.一些函数库,其中这个工具就叫做“编译器”. GNU C 编译器叫做 gcc,gcc包含了预处理器.编译器.汇编器.链接器等.语法格式: $ gcc [option] dest_file sourc…

GNU

1983年,理查德.斯托曼提出GNU计划(革奴计划),希望发展出一套完整的开放源代码操作系统来取代Unix,计划中的操作系统,名为GNU. 1989年,发表GNU通用公共许可协议(GPL).GPL条款下发布的一些主要的GNU项目软件有: GCC:GNU编译器集,包括GNU C编译器. G++:c++编译器,是GCC的一部分. GDB:源代码级的调试器. GNU make:Unix make命令的免费版本. GNU Emacs:文本编辑器及环境. bash:命令解释器(shell). 1991年,…
Linux 系统上可用的C编译器是GNU C编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU C对标准C 进行一系列扩展,以增强标准C的功能. 1.零长度数组GNU C 允许使用零长度数组,多用在定义变长对象的头结构.例如: struct var_data { int len; ]; }; char data[0] 仅仅意味着程序中通过 var_data 结构体实例的 data[index] 成员可以访问 len 之后的第 index 个地址,它并没有为 data[]…
在 Nginx 的自动脚本中,auto/cc目录下的所有脚本都是用于编译器相关配置使用的.Nginx的出色跨平台性(Linux.Darwin.Solaris.Win32 等)就有这些脚本的贡献.该目录下包含如下脚本: 目录 conf:主脚本,配置编译器的基本属性,并根据系统的编译器环境引用不同的脚本. name:与编译器名称相关的处理逻辑在该脚本中. gcc:GNU C 编译器的 Specified 配置. sunc:Sun C 编译器的 Specified 配置. acc:HP ANSI C+…
如果您已经安装 NetBeans IDE 6.9,但其中不包括 C/C++ 插件 如果在选择“文件”>“新建项目”时,NetBeans IDE 未显示 "C/C++" 项目类别,请执行下列步骤以向 IDE 中添加 C/C++ 插件模块. 如果网络使用代理,请在 IDE 中选择“工具”>“选项”>“常规”,选择“手动代理设置”,输入代理的“HTTP 代理”和“端口”,然后单击“确定”. 选择“工具”>“插件”. 在“插件”对话框中,单击“可用插件”标签,然后滚动至…
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针.设置页表.操作 ARM的协处理器等.初始化完成后就可以跳转到C代码执行.需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范. 一. Linux汇编行结构 任何汇编行都是如下结构: [:] [} @ comment [:] [} @ 注释 Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个…
GNU 是一款能用于构建类 Unix 操作系统的计算机软件合集,由自由软件之父 Richard Stallman 开创,于 1983 年 9 月 27 日对外发布.GNU 完全由自由软件(free software)构成. GNU 语法扩展源自于 GCC 编译器,在 1987 年发布 1.0 版本,称为 GNU C Compiler.随后,GCC 编译器前端支持了 C++.Objective-C/C++.Fortran.Ada.Java 以及最近跃升的 Go 等编程语言,因此现在 GCC 被称为…
GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不…
从名字上看,老的unix系统的CC程式叫做C Compiler.但GCC这个名字按GNU的说法叫做Gnu Compiler Collection.因为gcc包含非常多编译器(C, C++, Objective-C, Ada, Fortran,and Java).所以他们是不相同的,一个是个古老的C编译器,一个是编译器的Gnu的编译器的集合(Gcc里的C编译器比CC强大太多了,所以你没必要用CC).当你调用gcc时不一定是调用的C/C++编译器,是gcc根据文件扩展名自动识别并调用对应的编译器,具…
linux内核中GNU C和标准C的区别 今天看了一下午的linux内核编程方面的内容,发现linux 内核中GNU C与标准C有一些差别,特记录如下: linux 系统上可用的C编译器是GNU C编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU C对标准C进行进一步扩展,以增强标准C的功能.下面我们对GNU C中的扩展进行一下总结: 1.零长度数组 GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用.例如: struct minix_dir_…
gcc/g++/clang,相当于javac: 了解c/c++编译器的基本使用,能够在后续移植第三方框架进行交叉编译时,清楚的了解应该传递什么参数. clang: clang 是一个C.C++.Object-C的轻量级编译器.基于LLVM (LLVM是以C++编写而成的构架编译器的框架系统,可以说是一个用于开发编译器相关的库) gcc: GNU C编译器.原本只能处理C语言,很快扩展,变得可处理C++.(GNU计划,又称革奴计划.目标是创建一套完全自由的操作系统) g++: GNU c++编译器…
GNU g++常用编译选项用法 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/30686/showart_1210761.html GCC Option Refresher 本节回顾GCC的C编译器的基本使用方法. g++编译器的选项可以是单字符,比如-o,也可以多字符,比如-ansi.所以你不可以把多个单字符选项合写到一起,这和许多其他GNU和UNIX下的程序不同.例如,多字符选项-pg不表示2个单字符选项-p -g.选项-pg表示在…
总览 (SYNOPSIS) ld [-o output] objfile... [-Aarchitecture] [-b input-format] [-Bstatic] [-Bdynamic] [-Bsymbolic] [-c commandfile] [--cref] [-d|-dc|-dp] [-defsym symbol = expression] [--demangle] [--no-demangle] [-e entry] [-embedded-relocs] [-E] [-expo…
GNU GNU是一个自由软件工程项目,GNU工程已经开发了一个被称为“GNU”(GNU是“不是UNIX”的缩写)的.对Unix向上兼容的完整的自由软件系统(free software system). http://www.gnu.org/ gcc与g++区别 GCC:GNU编译器集合,涉及所有由GNU编译器所支持的不同的语言. GCC:GNU C编译器 G ++:GNU C ++编译器 GCC编译:.C/.cpp文件分别作为C和C ++. G ++编译:.C/.cpp文件,但他们都将被视为C+…
Linux,Unix, GNU,你可能经常听到这些名字被放在一起,比如 “Linux是类Unix系统”, “Linux其实应该叫 GNU/Linux” 等等.为什么会有这些说法,这些名词的历史渊源和背景到底是什么样的,今天我就来给大家做一个解密. 1 Unix的起源 Unix 操作系统是在1960年代末,由当时就职于美国贝尔实验室的肯·汤普逊(Kenneth Thompson) 和 丹尼斯·里奇(Dennis Ritchie)发明的.这两个人都是计算机领域的传奇.他们除了发明了Unix 系统之外…
转载:http://blog.csdn.net/roland_sun/article/details/43233565 众所周知,强大的C++相较于C增添了许多功能.这其中就包括类.命名空间和重载这些特性. 对于类来说,不同类中可以定义名字相同的函数和变量,彼此不会相互干扰.命名空间可以保证在各个不同名字空间内的类.函数和变量名字不会互相影响.而重载可以保证即使在同一个命名空间内的同一个类中,函数名字也可以相同,只要参数不一样就可以. 这样的设计方便了程序开发者,不用担心不同开发者都定义相同名字…