首页 > 编程语言 >C/C++编译过程

C/C++编译过程

时间:2023-04-04 22:24:16浏览次数:28  
标签:文件 gcc C++ 预处理 编译 过程 hello

1.预处理 

将.c中的头文件、宏展开

生成的文件是.i文件

gcc -E hello.c -o hello.i

2.编译

将预处理后的.i文件生成.s汇编文件

gcc -S hello.i -o hello.s

3.汇编

将.s文件生成.o目标文件

gcc -c hello.s -o hello.o

4.链接

将.o文件链接成可执行文件

gcc -c hello.o -o hello

标签:文件,gcc,C++,预处理,编译,过程,hello
From: https://www.cnblogs.com/huweide/p/17288096.html

相关文章

  • 手把手教你实现Android编译期注解
    一、编译期注解在开发中的重要性从早期令人惊艳的ButterKnife,到后来的以ARouter为首的各种路由框架,再到现在谷歌大力推行的Jetpack组件,越来越多的第三方框架都在使用编译期注解这门技术,可以说不管你是想要深入研究这些第三方框架的原理还是要成为一个Android高级开发工程师,编译期......
  • Qt6编译MySQL驱动最简单方法
    最近qt发布最新lts版本qt6.5,就想下来试试新功能。qt版本6.5.0,安装目录E:\Qt\6.5.0mysql版本8.0,安装目录C:\MySQL_Server_8.0,或者直接下连接器解压也可以:MySQL::DownloadMySQLConnector/C(ArchivedVersions)需要额外安装qt的sources源组件,忘了也没关系,在cmd下进入包含Main......
  • 基础C++程序题的基础归纳Ⅲ
    基础C++程序题的基础归纳Ⅲ1、去重排序题目描述ZN想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大......
  • 为虚幻引擎C++项目设置Visual Studio开发环境 | 虚幻引擎5.1文档 (unrealengine.com)
    设置VisualStudio设置VisualStudio以使用虚幻引擎的提示、技巧和技术Beginner本页面的内容版本兼容性新安装VisualStudio时的选项推荐设置虚幻引擎(简称UE) 能与 VisualStudio(简称VS) 完美结合,使你能够快速、简单地改写项目代码,并能即刻查......
  • C++多态
    多态是C++面向对象最主要的特性之一,多态即多种形态,多个不同对象对同一事物会产生不同状态多态的实现1.虚函数重写实现多态的必要条件是虚函数,父类中有虚函数,子类重写虚函数,实现同一对象的不同表达方式。2.多态的要求 (1、被调用的函数必须是虚函数,子类对父类的虚函......
  • VsCode安装和配置c/c++环境
    vscode是代码编译器,同时它提供了许多插件,可以帮助你方便的编写代码。通过配置vscode的开发环境,可以实现多种语言编译。总而言之,装了一个vscode就相当于装了多个IDE(集成开发环境)。后面,我们编写C语言代码就要依靠vscode了。一、下载vscode网址:VisualStudioCode-CodeEditing.......
  • C++实现AES加密
    参考https://zhuanlan.zhihu.com/p/567141666本人开发环境:vs2022,平台工具集vs2015(v140)要做到的如下图需要下载Cryptopp库https://github.com/weidai11/cryptopp打开默认工程,生成即可,选择cryptlib项目点击生成,产生头文件和lib文件实现代码:#include<Cryptopp/aes.h>#i......
  • 【C++学习笔记】关于const int* 、 int const * 、 int* const
    constint*、intconst*、int*const的关键点在于const与*的位置,而const与类型int的位置无关,可以随意调换,属于个人代码风格,不过建议写成constint*,方便直观。constint*与int*const的区别在于const修饰的是int*还是变量,其中constint*a修饰的是int*,表示这个......
  • c++vector怎么用
    ANSWERC++中的vector是一个能够存放任意类型的动态数组,能够增加和压缩数据,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。以下是使用vector的详细步骤和注意事项:头文件在使用vector时,需要包含vector头文件include初始化如果vector的元素类型是int,默认初始......
  • 模拟mybatis接口动态注册过程
    思考  前文提到2种方式动态加载bean到容器,这里我们模拟一下mybatis手动注册Bean到容器的过程。模拟有啥好处,主要是为了方便你理解如何手动注册Bean的过程及mybatis的设计思想。毕竟这个才是spring的核心内容。    首先思考一下问题    如果你实现这个问题,你准备怎......