Linux 编译器gcc/g++使用

gcc/g++同理

编译器运行过程

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

gcc -E a.c -o a.i

预处理后还是c语言

-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面

告诉gcc,从现在开始进行程序的翻译,将预处理工作做完停下

2. 编译(生成汇编)

gcc -S a.o -o a.s

-S  编译到汇编语言不进行汇编和链接 

从现在开始进行程序的翻译,将编译工作做完,就停下,可以从.i开始也可以从.c开始

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

将汇编语言翻译成二进制文件(目标文件)

gcc -c a.s -o a.o//.o文件不能执行

-c  编译到目标代码

从现在开始进行程序的翻译,将汇编工作做完就停止

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

gcc a.o –o a

将可重定位目标二进制文件和库进行连接形成可执行程序

./[生成的目标文件]

./a

执行可执行文件

库的概念

动态库不能缺失,一旦对应动态库缺失,影响的不知一个程序,会导致很多程序都无法运行

在编译器使用静态库进行静态链接时,会将自己的方法拷贝到目标程序中,该程序以后不用再依赖静态图

linux中 .so动态库  .a 静态库

Windows中 .dll动态库  .lib静态库

在linux中编译形成可执行程序,默认采用的是动态链接

Linux中静态链接指令:gcc a.c -o a_static -static

安装静态库

C/C++静态库

yum install -y glibc-static//C静态库
yum install -y libstdc++-static//C++静态库

gcc格式

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

gcc选项

-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面

告诉gcc,从现在开始进行程序的翻译,将预处理工作做完停下

-S  编译到汇编语言不进行汇编和链接

从现在开始进行程序的翻译,将编译工作做完,就停下,可以从.i开始也可以从.c开始

-c  编译到目标代码

从现在开始进行程序的翻译,将汇编工作做完就停止

-o 文件输出到文件 -o后面永远跟着可执行程序文件

-static 此选项对生成的文件采用静态链接

-g 生成调试信息。GDB 调试器可利用该信息。(要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项,进入debug模式

-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.

-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

-w  不生成任何警告信息。

-Wall 生成所有警告信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/336597.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【因果推断python】2_因果关系初步2

目录 偏差 关键思想 偏差 偏差是使关联不同于因果关系的原因。幸运的是,我们的直觉很容易理解。让我们在课堂示例中回顾一下我们的平板电脑。当面对声称为孩子提供平板电脑的学校会获得更高考试成绩的说法时,我们可以反驳说,即使没有平板电…

新疆 | 金石商砼效率革命背后的逻辑

走进标杆企业,感受名企力量,探寻学习优秀企业领先之道。 本期要跟砼行们推介的标杆企业是新疆砼行业的龙头企业:新疆兵团建工金石商品混凝土有限责任公司(以下简称:新疆金石)。 从年产80万方到120万方&am…

Go 和 Delphi 定义可变参数函数的对比

使用可变参数函数具有灵活性、重用性、简化调用等优点,各个语言有各自定义可变参数函数的方法,也有通用的处理方法,比如使用数组、定义参数结构体、使用泛型等。 这里总结记录一下 go、delphi 的常用的定义可变参数函数的方式! 一…

数据挖掘与机器学习——回归分析

目录 回归分析定义: 案例: 线性回归 预备知识: 定义: 一元线性回归: 如何找出最佳的一元线性回归模型: 案例: python实现: 多元线性回归 案例: 线性回归的优缺点…

基于xilinx FPGA的 FFT IP使用例程说明文档(可动态配置FFT点数,可计算信号频率与幅度)

目录 1 概述2 IP examples功能3 IP 使用例程3.1 IP设置3.2 fft_demo端口3.3 例程框图3.4 仿真结果3.5 仿真验证得出的结论4 注意事项5例程位置 1 概述 本文用于讲解xilinx IP 的FFT ip examples的功能说明,方便使用者快速上手。 参考文档:《PG109》 2 …

如何配置才能连接远程服务器上的 redis server ?

文章目录 Intro修改点 Intro 以阿里云服为例。 首先,我在我买的阿里云服务器中以下载源码、手动编译的方式安装了 redis-server,操作流程见:Ubuntu redis 下载解压配置使用及密码管理 && 包管理工具联网安装。 接着,我…

Atlas 血缘分析-hive/spark

Apache Atlas部署安装 这里需要注意,需要从官网下载Atlas的源码,不要从git上分支去checkout,因为从分支checkout出来的代码,无法正常运行,这里小编使用针对Atlas-2.3.0源码进行编译. mvn clean -DskipTests package …

2024 京麟ctf -MazeCodeV1

文章目录 检查代码思路一个字节的指令注意附上S1uM4i佬们的exp https://www.ctfiot.com/184181.html 检查 代码 __int64 __fastcall check_solve(char *a1) {__int64 result; // rax__int64 v2; // rax__int64 index_step; // rax__int64 v4; // rax__int64 v5; // rax__int64…

MySQL索引与事务

1. 索引 (1)概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。 (2)利弊 利: 数…

基于51单片机的温湿度控制系统

一.硬件方案 本设计采用51单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。液晶屏上同时显示温湿度上限值,该上限值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。当温度或湿度值超…

车机壁纸生成解决方案,定制化服务,满足个性化需求

在数字化与智能化浪潮的推动下,汽车内部设计已不再仅仅满足于基本功能的需求,更追求为用户带来前所未有的视觉享受与沉浸式体验。美摄科技,凭借其在图像生成与处理领域的深厚积累,推出了一款创新的车机壁纸生成解决方案&#xff0…

LORA微调,让大模型更平易近人

技术背景 最近和大模型一起爆火的,还有大模型的微调方法。 这类方法只用很少的数据,就能让大模型在原本表现没那么好的下游任务中“脱颖而出”,成为这个任务的专家。 而其中最火的大模型微调方法,又要属LoRA。 增加数据量和模…

VMware ESXi 7.0 U3q 发布 - 领先的裸机 Hypervisor

VMware ESXi 7.0 U3q 发布 - 领先的裸机 Hypervisor VMware ESXi 7.0 Update 3 Standard & All Custom Image for ESXi 7.0U3 Install CD 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3/,查看最新版。原创作品,转载请保留出…

[pdf,epub]《软件方法》2024版电子书共290页(202405更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 已上传本账号CSDN资源。 或者到以下链接下载: http://www.umlchina.com/url/softmeth2024.html,或点击“阅读原文”。 如果需要提取码:umlc 已排…

浅谈网络安全态势感知

前言 网络空间环境日趋复杂,随着网络攻击种类和频次的增加,自建强有力的网络安全防御系统成为一个国家发展战略的一部分,而网络态势感知是实现网络安全主动防御的重要基础和前提。 什么是网络安全态势感知? 态势感知一词来源于对…

图形学初识--空间变换

文章目录 前言正文矩阵和向量相乘二维变换1、缩放2、旋转3、平移4、齐次坐标下总结 三维变换1、缩放2、平移3、旋转绕X轴旋转:绕Z轴旋转:绕Y轴旋转: 结尾:喜欢的小伙伴可以点点关注赞哦 前言 前面章节补充了一下基本的线性代数中…

软件安全复习

文章目录 第一章 软件安全概述1.1 信息定义1.2 信息的属性1.3 信息安全1.4 软件安全1.5 软件安全威胁及其来源1.5.1 软件缺陷与漏洞1.5.1.1 软件缺陷1.5.1.2 漏洞1.5.1.3 软件漏洞1.5.1.4 软件缺陷和漏洞的威胁 1.5.2 恶意软件1.5.2.1 恶意软件的定义1.5.2.2 恶意软件的威胁 1.…

Mysql搭建主从同步,docker方式(一主一从)

服务器:两台Centos9 用Docker搭建主从 使用Docker拉取MySQL镜像 确保两台服务器都安装好了docker 安装docker请查看:Centos安装docker 1.两台服务器都先拉取mysql镜像 docker pull mysql 2.我这里是在 /opt/docker/mysql 下创建mysql的文件夹用来存…

java人口老龄化社区服务与管理平台源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的人口老龄化社区服务与管理平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 人口老龄化…

在线思维导图编辑!3个AI思维导图生成软件推荐!

思维导图,一种以创新为驱动的视觉化思考工具,已经渗透到我们日常生活和工作的各个角落。当我们需要整理思绪、规划项目或者梳理信息时,思维导图总能提供极大的帮助。 近些年随着云服务等基础设施的完善,我们可以看到越来越多提供…