Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Linux编译器-gcc/g++使用

Linux编译器-gcc/g++使用

作者头像
ljw695
发布于 2024-10-18 00:14:17
发布于 2024-10-18 00:14:17
1240
举报
文章被收录于专栏:ljwljw

1. 背景知识

1. 预处理(进行宏替换)

2. 编译(生成汇编)

3. 汇编(生成机器可识别代码)

4. 连接(生成可执行文件或库文件)

2. gcc如何完成

格式 gcc [选项] 要编译的文件 [选项] [目标文件]

预处理(进行宏替换)

编译(生成汇编)

汇编(生成机器可识别代码)

连接(生成可执行文件或库文件)

在这里涉及到一个重要的概念:函数库

函数库一般分为静态库和动态库两种。

自己总结

gcc mycode.c -0 mytest,后,./mytest就可以编译了,相当于把a.out重命名了

1、只进行预处理:gcc -E mycode.c -0 mycode.i,(预处理后干净的C语言)

2、变成汇编语言(编译)gcc -S mycode.i -o mycode.s(将汇编工作做完,就停下来)

3、汇编(生成机器可以识别代码)gcc -c mycode.s -o mycode.o,(mycode.o是目标文件,将会边工作做完,就停下来了),.obj文件,虽是二进制了,但不可以单独执行,需要经过连接才行。

4、连接,gcc mycode.o -o mytest后,再./mytest可以编译成功,连接过程将可重定位目标二进制和库进行连接形成可执行程序。键盘上的Esc方便记忆

.o和库是如何连接的?1、动静态连接

C语言静态库安装,sudo yum install -y glic-static livsbtdc++-static

gcc mycode.c -o mycode -static,静态连接,gcc默认用动态库,没有静态库,用不了static,-static本质:所以的连接都需要要求全部变为静态连接

动静态的优缺点:

动态库是因为共享库,可以有效节省资源(磁盘,内存,网络完全)等,一旦缺失,各个程序无法运行,静态库:不依赖库,程序可以独立运行,消耗资源,体积大

g++ mycode.cpp -o mycode -static -g(-g是用debug的意思,因为默认是release版本)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux编译器---gcc/g++使用详解
更加详细的介绍,可以参照这篇博客:C语言翻译环境:预编译+编译+汇编+链接详解-CSDN博客
P_M_P
2024/02/24
9040
Linux编译器---gcc/g++使用详解
【Linux篇】基础开发工具-编译器gcc/g++
 在Liunx中存在着两种编译器gcc/g++,gcc是只用来编译c语言的编译器,而g++可以编译c/c++。 程序的翻译过程需要经历四个步骤:预处理,编译,汇编,链接。
_孙同学
2024/12/25
1750
【Linux篇】基础开发工具-编译器gcc/g++
vim编辑器和gcc/g++编辑器的使用讲解
vim是Linux的编写代码的工具,是一种多模式的编辑器。 Linux中vim的常用的模式大概可以分为三种,分别是: 命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
ahao
2024/03/24
2510
vim编辑器和gcc/g++编辑器的使用讲解
Linux编辑器gcc/g++使用及Vim的配置
在目录/etc/下面,有个vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。 而在每个用户的主目录下,都可以自己建立私有的额配置文件,命名为:.vimrc。例如,在/root目录下,通常已经存在一个.vimrc文件,如果不存在,自己创建一个就可以了。 注意:配置vim不要再系统公共的vimrc进行配置,这样就会给每个用户都配置了,Linux毕竟是一个多用户的操作系统,每个人的配置喜好都是不同的,所以呢,用户如果需要配置vim就在用户的当前目录进行配置。按 cd~进入当前用户的主工作目录。 打开当前目录下的.vimrc,执行vim .vimrc.
Yui_
2024/10/16
1720
Linux编辑器gcc/g++使用及Vim的配置
Linux编译器-gcc/g++使用
选项 “-E”, 该选项的作用是让 gcc 在预处理结束后停止编译过程。
绝活蛋炒饭
2024/12/16
3010
Linux编译器-gcc/g++使用
Linux编译器-gcc/g++使用
进入test.i后发现居然有800多行代码,这是为什么呢?因为预处理阶段会进行头文件展开,就是将c语言中写好的头文件拷贝到这个test.i中,这就是头文件的展开。
用户10923087
2024/01/23
2140
Linux编译器-gcc/g++使用
【linux学习指南】Linux编译器 gcc和g++使用
预处理功能主要包括宏定义,文件包含,条件编译,去注释等。 预处理指令是以#号开头的代码行。 实例: gcc –E hello.c –o hello.i 选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。 选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。
学习起来吧
2024/09/11
2840
【linux学习指南】Linux编译器 gcc和g++使用
【C++】使用g++指令控制【翻译】各个过程
YY的秘密代码小屋
2024/02/05
1880
【C++】使用g++指令控制【翻译】各个过程
【Linux修炼】6.gcc/g++及Makefile【工具篇】
在C语言中,我们已经学过程序的编译和链接,在这里将复习一下我们之前所学的内容并引出后续gcc/g++的内容。
每天都要进步呀
2023/03/28
5710
【Linux修炼】6.gcc/g++及Makefile【工具篇】
深度解析Linux中的编译器gcc/g++
我们需要进入到/etc/sudoers这个文件里面,我们需要使用我们的root账户,不然得话我们进去之后什么都看不见的
凯子坚持C
2025/01/17
1560
深度解析Linux中的编译器gcc/g++
Linux下Centos7中的gcc/g++
可能对于没有配置过的centos来说,会无法编译成功。为什么呢?那是由于gcc的版本在默认的情况之下是取了一个适中的版本,不算太新,正好又不能编译for循环,所以导致这样不能进行编译。 如果想要编译的话,可以根据提示信息,进行改写一下gcc命令
薛定谔方程难
2024/07/27
1050
Linux下Centos7中的gcc/g++
【Linux】深度解析与实战应用:GCC/G++编译器入门指南
  在Linux系统中,GCC(GNU Compiler Collection)是极其重要且广泛使用的编译器,它支持多种编程语言,包括C、C++、Objective-C、Java、Fortran等。GCC以其高效、灵活和跨平台的特点赢得了开发者的青睐。本文将详细介绍GCC中的C编译器gcc和C++编译器g++的基本使用方法和编译过程。
大耳朵土土垚
2024/09/25
2730
【Linux】深度解析与实战应用:GCC/G++编译器入门指南
Linux基础——Linux开发工具(中)_gcc/g++
前言:在上一篇我们简单介绍了yum,vim的一些常用的指令和模式,现在让我们来进一步了解其他的Linux环境基础开发工具gcc/g++,gdb。
Eternity._
2024/06/14
1850
Linux基础——Linux开发工具(中)_gcc/g++
Linux工具学习之【gcc/g++】
书接上文,我们已经学习了 Linux 中的编辑器 vim 的相关使用方法,现在已经能直接在 Linux 中编写C/C++代码,有了代码之后就要尝试去编译并运行它,此时就可以学习一下 Linux 中的编译器 gcc/g++ 了,我们一般使用 gcc 编译C语言,g++ 编译C++(当然 g++ 也可编译C语言),这两个编译器我们可以当作一个来学习,因为它们的命令选项都是通用的,只是编译对象不同。除了编译器相关介绍外,本文还会库、自动化构建工具、提权等知识,一起来看看吧
北 海
2023/07/01
2250
Linux工具学习之【gcc/g++】
【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile
我们在Windows中有很多的编译环境,大家应该都很熟悉,但是在Linux中,我们怎么写代码呢?
用户10925563
2024/06/04
1230
【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile
Linux中编译器-gcc/g++的使用
上面的过程对应的选项正好对应键盘左上角 Esc 按键, 方便我们进行记忆, 不过E S 大写, c小写
用户11317877
2024/11/15
1960
Linux中编译器-gcc/g++的使用
全面掌握APT、Vim和GCC:Ubuntu软件管理与开发指南
在 **Ubuntu** 系统中,软件包管理器用于安装、更新、删除和管理软件包。Ubuntu 主要使用 APT(Advanced Package Tool) 作为软件包管理系统,并提供了多种工具和命令来简化软件管理
HZzzzzLu
2024/12/26
1350
全面掌握APT、Vim和GCC:Ubuntu软件管理与开发指南
【Linux】手把手教你从零上手gcc/g++编译器
然后我们使用gcc的只激活预处理选项,将生成的文件定向输入到新文件test.i中:
修修修也
2024/08/17
1830
【Linux】手把手教你从零上手gcc/g++编译器
【Linux探索学习】第八弹——Linux工具篇(三):Linux 中的编译器 GCC 的编译原理和使用详解
Linux下的vim编辑器:【Linux探索学习】第七弹——Linux的工具(二):Linux下vim编辑器的使用详解-CSDN博客
GG Bond1
2024/10/25
2210
【Linux探索学习】第八弹——Linux工具篇(三):Linux 中的编译器 GCC 的编译原理和使用详解
【Linux系统编程】Linux下的编译器——gcc/g++的使用 及 动态库和静态库的认识
gcc (GNU Compiler Collection) 和 g++ 是 Linux 系统上最常用的编译器。它们是 GNU 组织开发的一套开源编译器工具集。
YIN_尹
2024/01/23
2.2K0
【Linux系统编程】Linux下的编译器——gcc/g++的使用 及 动态库和静态库的认识
推荐阅读
相关推荐
Linux编译器---gcc/g++使用详解
更多 >
LV.1
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档