gcc/g++编译器的安装与说明
gcc/g++编译器的安装与说明
1.gcc/g++编译器的安装
gcc yum install gcc
g++ yum install gcc-c++
2.gcc/g++的作用
将c/c++源代码编译成机器可识别的代码(指令)
3.编译过程
预处理 通过预处理指令所包含的文件内容插入程序中(展开源文件的所有代码)
gcc -E test.c -o test.i 产生一个预处理后的文件( .i文件 )
编译 语法语义纠错,调用汇编程序生成成汇编代码
编译时指定源程序,不用任何选项,会默认生成一个a.out文件
gcc -S test.i -o test.s 产生一个汇编程序文件( .s文件 )
汇编 将汇编代码翻译成机器所能识别的二进制指令
gcc -c test.s -o test.o 产生一个目标文件( .o文件)
链接 链接库,将所有代码合到一起生成可执行文件
gcc test.o -o test 产生一个可执行文件
gcc默认的链接方式为动态链接
4.gcc/g++的区别与联系
1>对于*.c文件,gcc会将它当成c程序,而g++会将它当成cpp程序
2>对于*.cpp文件,gcc与g++都会当它为cpp程序
3>cpp编译阶段,g++会调用gcc
4>cpp链接阶段,通常会用g++来完成,因为gcc命令不能自动与cpp程序使用的库链接
5.gcc编译器常用选项
-c 只生成目标文件(*.o文件),不链接
-E 只进行预处理,不编译,生成预处理后的(*.i)文件
-S 生成汇编文件(*.s)文件
-o 指定输出的可执行文件名称
-g 在编译过程中产生调试信息
-w 禁止警告,有时会隐藏程序中的错误
-W 给出额外更详细的警告
-Wall 给出所有有用的警告信息,有利于排查问题
gcc/g++编译器的安装与说明的更多相关文章
- CentOS 7 升级gcc/g++编译器
gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行.我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14.C++17 ...
- Linux环境下GNU, GCC, G++编译器
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012823258/article/details/36890125 一.GNU GNU是" ...
- Linux环境下GNU, GCC, G++编译器(转)
一,GNU GNU是“GNU 's Not Unix”的递归缩写, Stallman宣布GNU应当发音为Guh-NOO(革奴)以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new ...
- redhat6.4 gcc g++ rpm方式安装步骤
centos源 包包自行下载 [root@localhost gcc]# rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm warning: ppl-0.10.2-11.el ...
- 升级 树莓派的gcc/g++编译器到4.8
首先,更新你的树莓派(避免编译出来版本不对导致不能insert)sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade s ...
- Linux下编译器的安装
一.Linux下gcc/g++/gfortran的安装 (1).gcc Linux下自带gcc编译器.可以通过“gcc -v”命令来查看是否安装. (2).g++安装g++编译器,可以通过命令“sud ...
- windows 下 gcc/g++ 的安装(有图,一步一步)
下载 mingw 首先打开 www.mingw.org .(注意版本,建议64bit) www.mingw.org 直接点击右上方的 Download Installer 即可下载. 点击 Downl ...
- Clang比 gcc/g++更人性化代码出错提示的C/C++编译器
编译器方面的几个命令 gcc/g++ 一. 常用编译命令选项 常用用法 gcc -Wall test.c -o test gcc编译过程 .c ->(-E)-> .i[中间文件] -> ...
- Linux 之 编译器 gcc/g++参数详解
2016年12月9日16:48:53 ----------------------------- 内容目录: [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++ ...
随机推荐
- 实验1 C语言开发环境使用和数据类型,运算符,表达式
part :验证性内容 .输出学号. #include<stdio.h> int main(void){ printf("); ; } .输入两个整数,求它们的乘积. #incl ...
- 内存管理 re模块
# 内存垃圾回收机制: # 工作原理:引用计数 # 引用就+1 释放就是-1 当计数为0时 就会被垃圾回收机制回收 # 标记清除:解决循环引用导致的内存泄漏 # 标记:GC roots可以直接或间接访 ...
- Vue 组件&组件之间的通信 之 非父子关系组件之间的通信
Vue中不同的组件,即使不存在父子关系也可以相互通信,我们称为非父子关系通信: 我们需要借助一个空Vue实例,在不同的组件中,使用相同的Vue实例来发送/监听事件,达到数据通信的目的: 实例: 初始加 ...
- asp.net core 使用 web deploy 部署网站
1.添加角色和功能中 web服务器(iis)->管理工具->管理服务 打勾并安装 2.安装 web deploy,也可以通过 web平台安装程序 来安装,搜索web deploy就可以了 ...
- 尝试解决IDea 启动项目后,后台疯狂输出日志。
今天启动项目的时候,昨天下班前还好好,然后今天就炸了.后台疯狂输出日志.. 就类似这种,大批量的刷.其实项目已经正常启动了,就是疯狂的刷日志. 2019-03-29 08:42:53 [DEBUG] ...
- JAVA监听器Listener
JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...
- mfc双缓冲绘图
1.要求 在界面加载本地图片并显示,每过100ms改变一张图片显示 2.现象 通过定时器控制CImage,Load,Draw,Destroy,会非常的卡顿.因为Load图片时,会是非常大的数据[所有C ...
- topcoder srm 625 div1
problem1 link 假设第$i$种出现的次数为$n_{i}$,总个数为$m$,那么排列数为$T=\frac{m!}{\prod_{i=1}^{26}(n_{i}!)}$ 然后计算回文的个数,只 ...
- zabbix历史数据相关表研究
zabbix历史数据相关表研究 history和trends相关表 history和trends都是存储历史数据的地方.一般是通过监控项(item)配置里.匹配更新监控项(item)和设置HouseK ...
- ng/cli uses yarn as the package manager
Switch to working directory Excuting the following command ng config cli.packageManager yarn