gcc/g++ 编译C/C++代码
摘要:本文介绍了在windows下编译c/c++代码的完整流程
1.安装gcc/g++编译器
官网下载地址为:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download?use_mirror=nchc
下载安装之后配置一下环境路径:
接下来测试一下是否正常,在命令行输入:
gcc -v
如果输出gcc
的信息而不是提示找不到则安装成功,否则,检查安装路径!
2.编译
首先准备一份测试代码,命名为hello.c
//gcc 编译测试代码
#include<stdio.h>
int main(){printf("Hello gcc!");
}
编译可分为四个阶段:
预处理:编译器将c程序的头文件包含进来,及进行宏替换
gcc -E hello.c -o hello.i
编译:这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻译成汇编语言,编译器(
ccl
)将文本文件hello.i
翻译成文本文件hello.s
, 它包含一个汇编语言程序。汇编语言程序中的每条语句都以一种标准的文本格式描述了一条低级机器语言指令。gcc -S hello.i -o hello.s
汇编:把编译阶段生成的
.s
文件转换为二进制目标代码。汇编器(as
)将hello.s
翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式, 并将结果保存在目标文件hello.o
中。hello.o
文件是一个二进制文件,它的字节编码是机器语言。gcc -c hello.s -o hello.o
链接:把
obj
文件链接为可执行的文件:链接器(ld
)负责.o
文件的并入。结果就是hello
文件,它是一个课执行的目标文件,可以加载到存储器后由系统调用gcc hello.o -o hello
当然,也可以直接生成目标文件:
gcc hello.c -o hello
或者:
gcc hello.c
此时目录下会有hello.exe
文件,在命令行输入:hello.exe
运行即可!
注意:如果是C++代码,则调用g++
编译即可,语法相同。
gcc/g++ 编译C/C++代码相关推荐
- windows下,对opencv进行gcc/g++编译
opencv官网下载的Windows安装包有source文件夹和build文件夹,其中build文件夹是已经编译好的,里面有用于VS配置的库,source文件夹包含源码和编译配置文件,可以借助cmak ...
- MinGW下载并配置gcc/g++编译环境
本文将讲解如何下载MinGW并配置gcc\g++编译环境 #方案一:官网下载 ##一.下载MinGW 在MinGW官网中下载"mingw-get-setup.exe" 官网传送门: ...
- linux下g编译文件或目录,【转】在linux下使用gcc/g++编译多个.h文件
博主写得很好 多个文件编译在linux下编译,下面有三个文件,分别是1.cpp 和 2.cpp 和myhead.h 文件. 1.cpp 2.cpp myhead.h 假如他们都在一个目录下面,那么编译 ...
- linux gcc g++编译命令选项
gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码) ...
- GCC/G++编译过程
GCC编译过程 # 编写一个最简单的C++程序 $ cat hello.cpp int main() {return 0; }# -v选项可以打印出详细的编译过程,以及编译命令. $ gcc -v - ...
- 用gcc/g++编译运行C/C++程序
2019独角兽企业重金招聘Python工程师标准>>> 编译 gcc hello.c 运行 ./a.out 将源程序文件编译成指定文件 gcc hello.c -o hello 多文 ...
- MinGW下载,配置gcc/g++编译环境
方案一:官网下载 一.下载MinGW 在MinGW官网中下载"mingw-get-setup.exe" 官网传送门:http://www.mingw.org/ 二.安装MinGW ...
- 嵌入式Linux系统编程学习之五gcc/g++编译器
文章目录 前言 一.gcc/g++编译过程 二.静态库和动态库 三.gcc警告和优化选项 1.gcc警告 2.gcc优化选项 前言 对于.c格式的C文件,可以采用gcc或g++编译,对于.cc.. ...
- 【linux系统编程】基础开发工具:gcc/g++
Linux C/C++ 编译器 – gcc/g++ 正文开始@Assassin 目录: Linux C/C++ 编译器 -- gcc/g++ 1. gcc/g++ 基本用法: 2. C/C++编译基本 ...
最新文章
- Numpy掩码数组masked arrays,这一篇就够了
- Unity4.6.2发布 支持64位iOS
- java线程死锁_Java并发:隐藏线程死锁
- C#设计模式系列 8 ----Builder 生成器模式之--发工资了,带老婆到 岗顶百脑汇配置电脑...
- 长度、面积、体积的相似比原理
- 7-6 逆序的三位数 (10 分)
- 错误、调试和测试(4)-文档测试
- XX公司的薪酬设计案例分析
- deb包一般放在linux的哪个目录下,deb包安装目录详解
- flashpaper java_基于FlashPaper实现JSP在线阅读代码示例
- 外汇天眼:英国研究人员与南非合作应对气候变化
- 2021知识付费、流量变现小程序源码系统搭建安装教程,一个小白都可以日入过千的项目。
- 基于flex/bison工具生成sysY2022文法的词法/语法分析器
- C语言函数指针调用函数
- matlab中map工具箱(Mapping toolbox)使用
- 【解决问题】ducky one2 mini mecha机械键盘在macOS下不识别
- stm32HALL库学习之二
- python基础——数据类型
- 【Chips】跨时钟域的亚稳态处理、为什么要打两拍不是打一拍、为什么打两拍能有效?
- 如何解决“bits/stdc++.h”:No such file or directory问题?
热门文章
- 2020年计算机中职赛,我校在2020年广西职业院校技能大赛(中职组)中再获佳绩...
- 鸭子-策略模式(Strategy)[原]
- 推荐一些有趣的编程书籍和电影
- linux博通2070蓝牙驱动,Broadcom博通BCM 2070/20702系列蓝牙设备驱动怎么样
- C# MediaPlayer的详细用法
- 2021年T电梯修理考试及T电梯修理考试总结
- 清华大学计算机系教授武汉理工大学,武汉理工大学
- 网上看到得,留下记号
- 3D视觉缺陷检测:理论与实战!
- 3.3.3 反相比例运算放大电路