linux环境下的编译器gcc
gcc:
-o 编译链接生成可执行文件
-O -O1 -O2 -O3 编译优化
-g -g1 -g2 -g3 产生调试信息至可执行文件
-w 关闭所有的警告
-W all,error -Wall显示所有的警告 -Werror把所有的警告当错误
...
分类:
系统相关 时间:
2015-05-11 09:04:09
阅读次数:
188
g++编译总结一、编译注意细节1.使用g++编译CPP文件如果用gcc编译C++源文件时,加以下选项:-lstdc++,否则使用了C++操作的文件编译会出错。2.gcc/g++ 在执行编译时,需要4步① 预处理,生成.i的文件[使用-E参数]② 将预处理后的文件不转换成汇编语言,生成文件.s[使用-...
分类:
其他好文 时间:
2015-05-09 20:19:45
阅读次数:
119
stay hungry,stay foolishlinux下gcc编译多个源文件、gdb的使用方法一. gcc常用编译命令选项假设源程序文件名为test.c。1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a....
分类:
数据库 时间:
2015-05-07 10:10:46
阅读次数:
288
一. gcc常用编译命令选项假设源程序文件名为test.c。1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。2. 选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇...
分类:
数据库 时间:
2015-05-07 08:41:52
阅读次数:
237
一个变量作为函数参数按值传入,但是函数调用完之后,变量的值竟然改变了,不知所以然。原来是函数里面有个地址越界问题,导致变量的值被改变了,有点不可思议吧!比如,下面这个程序,就由于数组下标越界导致死循环:
#include
int main()
{
int i;
int a[5];
for(i = 0; i <= 5; i++) {
a[i]...
分类:
编程语言 时间:
2015-05-05 16:27:28
阅读次数:
144
使用gcc编译程序时,编译过程可以细分为四个阶段:
预处理
预处理过程读入程序源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换。预处理过程会删除程序中的注释和多余的空白字符。
编译
编译阶段中,gcc首先检查代码的规范性,是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。
汇编
汇编阶段是把在编译阶段产生的汇编文件转成目标代码。
链...
分类:
系统相关 时间:
2015-05-05 09:00:32
阅读次数:
209
折腾很久,才学会第一个helloworld。首先安装GCC 编译器,这个我的12.4版本已经带有,所以不用安装。ctri+alt+T进入命令行(ctrl+D退出):输入gedit, 输入helloworld程序,存储到某个路径。或在VIM模式下直接输入,输入VIM,之后输入i采用插入模式(可能需要安...
分类:
编程语言 时间:
2015-05-05 01:14:15
阅读次数:
228
虽然我们非常不愿意承认,但软件中还是有错误存在。调试是程序员必修的课程,如果不懂调试,那么日后写程序的时候修正代码bug会付出大量的时间和精力。gdb即GNU debugger。gcc中提到的,gcc编译选项-g,这样生成的目标代码中就添加了调试信息。gcc -g –o hello hello.cg...
分类:
数据库 时间:
2015-05-04 06:25:52
阅读次数:
236
Linux编译安装GCC-5.1.0
Linux编译安装GCC-5.1.0,有需要的朋友可以参考下。
Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是GCC了。2015年4月下旬GCC也出到了5.1.0版本,对于C++11/14也有了更好的支持了。因为最近在学习OpenMP,
Gcc-5.1.0支持OpenMP4.0最新版本。所以,今天我们...
分类:
系统相关 时间:
2015-05-03 16:03:01
阅读次数:
140
X86-64 CPU架构以及64 位GCC对程序编译处理的一些变化...
分类:
其他好文 时间:
2015-05-03 16:01:47
阅读次数:
143