一.-D 其意义是添加宏定义,这个很有用. 当你想要通过宏控制你的程序,不必傻乎乎的在程序里定义,然后需要哪个版本,去修改宏. 只需要在执行gcc的时候,指定-D,后面跟宏的名称即可. 示例: gcc test.c -o test -D OPEN_PRINTF_DEBUG 或者gcc test.c -o test -DOPEN_PRINTF_DEBUG 两者都是可以的. 二.-w 关闭所有警告信息 三.-W和-Wall 开启所有警告,一般一起使用. 四.-O3 O是大写字母O,不是数字0哦. 意…
一.GCC GNU编译器套件(GNU Compiler Collection)包括C.C++.Objective-C.Fortran.Java.Ada和Go语言的前端,也包括了这些语言的库(如libstdc++.libgcj等等).GCC的初衷是为GNU操作系统专门编写的一款编译器.GNU系统是彻底的自由软件.此处,“自由”的含义是它尊重用户的自由.[1]    目录 1创作背景 2结构 ▪ 前端接口▪ 中介接口▪ 后端接口 3基本用法 4基本规则 5语言支持 6执行过程 7执行过程示例 8处理…
转自:http://www.tuicool.com/articles/EvIzUn gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如 -ggdb .-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内.  相比-g选项, -rdynamic 却是一个 连接选项 ,它将指示连接器把所有符号(而不仅仅只是程…
摘自http://www.tuicool.com/articles/EvIzUn gcc选项-g与-rdynamic的异同 gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如 -ggdb .-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内. 相比-g选项, -rdynamic 却是一个 连接选项 ,它…
程序编译运行的过程 预处理.处理一些#include,#define命令,生成.i或者.ii文件: 编译.编译器进行语法分析,语义分析,中间代码生成,目标代码生成,优化,生成.s文件 汇编.汇编器把汇编代码翻译成机器码,生成.o文件 链接.链接器进行地址和空间分配,符号决议,重定位,生成.out文件. 编译器编译源代码后生成的文件叫做目标文件.目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有被调整. gcc和g++的区别 都是GNU组…
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意. cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装.gcc原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C.C++.Objective…
1.vi filename(vi,visual editor,可视化编辑器)用vim文本编辑器打开filename文件. vim文本编辑器有三种模式:命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode). 命令模式:刚进入vim就是命令模式,此模式下,底线没有显示东西.在此模式下,按下i进入插入模式,输入:进入底线命令模式. 插入模式:编辑.输入的模式,在此模式下vim底线会有-- INSERT --提示, 此模式下可以向文件输入…
1.         gcc与g++编译流程: 1)         编译流程: 2)         预处理:生成.i的预处理文件. Ø 只激活预处理,这个不生成文件,需要把它重定向一个输出文件. Ø 演示: 3)         编译:生成.s的编译文件. Ø 只激活预处理和编译,把文件编译成汇编代码. Ø 演示: 4)         汇编:生成.o的汇编文件. Ø 只激活预处理.编译和汇编,把程序做成obj文件. Ø 演示: 5)         链接:生成链接文件. Ø 激活预处理.编…
gcc与g++区别:可以相互编译,但是gcc不会自动进行c++的链接 gcc g++编译选项: -E 预处理 -S 编译指定源文件但是不尽兴汇编 -c 编译汇编,但是不进行链接 -o 编译成可执行文件 -I 指定include包含文件的搜索目录 -g 生成调试信息 -D 编译时指定一个宏,加上宏才会运行的部分代码 -D演示 点击查看代码 在c程旭忠 #ifdef DEBUG {xxxx} #endif 编译时使用 -D DEBUG 才能进行xxxx这句话 -w 忽略警告 -Wall 显示所有警告…
看的Linux公社的一篇文章,觉得不错,内容复制过来了. 其实在这之前,我一直以为gcc和g++是一个东西,只是有两个不同的名字而已,今天在linux下编译一个c代码时出现了错误才找了一下gcc和g++的区别. 先描述一下今天遇到的错误: 因为以前写程序的时候,写的都是cpp文件,然后就直接使用g++编译,没出错,也就没有在意过这些问题,今天有一个c文件,但里面包含后STL中的vector语法,想着使用gcc来编译,结果报错了,报错是:找不到vector. 什么是gcc / g++ 首先说明:g…