gcc编译工具的使用
技术交流QQ群:1027579432,欢迎你的加入!
1.gcc工作流程
- 预处理:–E
- 宏替换
- 头文件展开
- 注释去掉
- xxx.c文件变成xxx.i文件(实际上也是c文件)
- 编译(此步骤时间最长):–S
- xxx.i文件变成xxx.s文件(汇编文件)
- 汇编:-c
- xxx.s文件变成xxx.o文件(二进制文件)
- 链接:
- xxx.o文件变成xxx文件(可执行)
- xxx.o文件变成xxx文件(可执行)
- gcc hello.c:默认编译生成的可执行文件名为a.out;
- gcc hello.c -o hello:指定编译生成的可执行文件名为hello;
- 只有编译步骤是gcc完成的,其余步骤都是gcc调用其他工具(如预处理器、链接器等)实现的
2.gcc常用参数
- -v/–version: 查看gcc版本
- -I:编译的时候,指定头文件的路径。例如:gcc sum.c -I ./include/ -o sum
- -c:将汇编文件生成二进制文件,得到了一个.o文件。例如:gcc sum.c -c -I ./include/
- -o:指定生成的文件的名字。例如:gcc sum.c -c -I ./include/ -o aa.o
- -g:gbd调试的时候需要增加的参数。例如:gcc hello.c -o app1 -g
- -D:在编译的时候指定一个宏,使用场景:测试程序的时候使用。例如:gcc sum.c -I ./include/ -D DEBUG -o app
- -Wall:添加警告信息。例如:gcc sum.c -I ./include/ -D DEBUG -o app1 -Wall
- -On:优化代码,n是优化级别:1,2,3。
gcc编译工具的使用相关推荐
- Linux中GCC编译工具集中个软件的用途、gcc的简单编译以及ELF文件格式
文章目录 一.gcc编译工具集中各软件的用途 1.1 GCC 1.2 Binutils 1.3 C运行库 二.简单编译 2.1 代码编译过程 2.2 多个程序文件的编译 2.3 检错 2.4 库文件连 ...
- Linux编程之GCC编译工具实战-夏曹俊-专题视频课程
Linux编程之GCC编译工具实战-6075人已学习 课程介绍 本课程使得学员能够学会在linux中如何编译C/C++程序,使用GCC工具如何编译静态库,动态库,如何配置运行动态库. ...
- GCC编译工具集和nasm编译器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.gcc编译工具集 1.1gcc工具有哪些 1.2gcc编译过程 1.2.1.这里我们是使用一个hello.c文件进行演 ...
- gcc编译工具常用命令以及汇编语言
文章目录 一.Linux GCC常用命令 二.GCC编译器背后的故事 总结 一.Linux GCC常用命令 1 新建一个文件test,代码如下: #include <stdio.h>int ...
- 如何把gcc编译工具使用到linux全局
转载来自朱老师笔记 总结: gcc的安装,怎么安装,在linux下把压缩包放入共享文件夹中,拷贝到用户目录下,一般是/local/bin中(要创建一个ARM文件夹) 解压缩gcc压缩包 echo $P ...
- Tips--windows系统下gcc编译C文件为so共享库
windows系统下gcc编译C文件为so共享库 1. windows系统安装gcc编译工具 2. 利用gcc编译多个c文件 3. 利用python工具验证生成的so共享库 1. windows系统安 ...
- MDK编译过程及ARM编译工具链
欢迎加入[Linux C/C++/Python社区]一起探讨和分享Linux C/C++/Python/Shell编程.机器人技术.机器学习.机器视觉.嵌入式AI相关领域的知识和技术. MDK编译过程 ...
- 如何用gcc编译C代码
如何用gcc编译C代码 1.编写 hello word 的两种方法--现成编译器 这个方法大家都经常用,比如DEVCpp,Visual Studio 2017,Visual C++ 6.0等. 简单的 ...
- gcc mips64编译后无法运行在octeon上运行_编译工具链
软件的编译过程由一系列的步骤完成,每一个步骤都有一个对应的工具.这些工具紧密地工作在一起,前一个工具的输出是后一个工具的输入,像一根链条一样,我们称这些工具为工具链. Linux系统上,通常只需要使用 ...
最新文章
- 前端学习(749):函数两种声明方式
- Python 两种装饰器
- git获取管理员权限 windows,windows下git怎么管理权限
- 60-10-050-命令-kafka-broker-api-versions.sh
- IIS------项目配置到IIS后报500错误
- 51nod 1680区间求和 (dp+树状数组/线段树)
- 可以下载MapInfo地图吗?
- 双层PDFmaker
- 存在哪些域名后缀种类?哪个后缀比较好?
- 谷歌邮箱的注册以及GEE的注册使用教程
- 基于矩阵分解的PCA 白化ZCA白化
- 企企通SRM:由“制造”到“智造”,高科技电子行业如何打造智慧供应链?
- 报表数据源之Hadoop
- 【优动漫 PAINT应用篇】绘制插画之上墨线
- QTableView中添加icon
- Google 新系统 Fuchsia 概览和浅析
- 记一次greenplum集群数据库连接慢的问题定位
- Action Chains类 使用鼠标操作使用方法
- 关于在《python编程从入门到实践》书中练习“外星人大战”报错“AttributeError: ‘AlienInvasion‘ object has no attribute ‘blit‘”
- Meta AI:让手绘小人动起来