GCC笔记】的更多相关文章

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 : 显示所有常用的编译警告信息. …
GNU C Complier 查看 gcc 版本 :gcc -v 文件后缀名  .c的后缀 为C语言的文件源码 gcc  -o output gcc -o 输出文件名字 输入文件名 gcc -v -o  output 输出gcc 编译过程的所需文件信息 预处理—— -E 让GCC编译预处理后就停止——对文件进行替换#define #include # "1.c" # "<built-in>" # "<command-line>&qu…
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…
 可以用宏判断是否为ARC环境 #if _has_feature(objc_arc) #else //MRC #endif C中的预编译宏定义 -- 作者: infobillows 来源:网络 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理,…
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征.依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的. 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数. ()message 参数. Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出…
本文介绍了C6000最新的v7.2或者之后的编译器如何支持ELF(EABI)和COFF-ABI格式,首先由ARM引入嵌入式(Embedded) EABI的介绍,之后比较了COFF-ABI和EABI的区别,如何用编译器选项(--ABI=EABI --strip_coff_underscore)和预编译处理命令来实现从COFF格式到ELF格式的转换,主要是关注long数据类型位宽不一致以及汇编文件变量和函数定义的前置下划线的处理方式.最后是ELF格式引入的链接段区和COFF格式的不同. EABI简介…
本文是<An introduction to GCC>的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验.如果想详细查看本书,请戳这里. 一.gcc 1. 命令 $ gcc test.c -o test 将test.c 命令编译成test可执行程序.-o 命令制定输出文件名. 没有任何其他的参数即默认编译成可执行程序,输入命令 $ ./test 即可执行.gcc 实际上是分成四步:预处理.编译.汇编.链接. $ gcc -E hello.c -o…
1:第一个程序 : hello world #include <stdio.h> int main(void) { printf("Hello , world ! \n"); return 0; } 编译: gcc -Wall hello.c -o hello 2:调试错误 :  debug.c #include <stdio.h> int main(void) { printf("Two plus two is %f \n", 4); re…
概述 最近在学习<深入应用C++11-代码与优化与工程级应用>,我的gcc版本是gcc-4.8.5是支持C++11的,但是我在作者的github上看了一些C++例子,其中有些是C++14的语法,我的gcc版本并不支持,之前安装了ubuntu16.04LTS,该系统的gcc版本是5.3.1这个是支持C++14的,所以我打算用ubuntu16.04LTS来作为开发系统算了,但后来又想折腾一些自己没有做过的事情可以作为经验积累,所以我又放弃了使用现成的ubuntu16.04LTS,经过三晚的折腾终于…
1.如何在gcc中传输宏定义? 参考如下红色部分,可以传入宏定义 gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-pedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile... 示例: #include <stdio.h>…