位置: IT常识 - 正文

静态链接(linux 静态链接)

编辑:rootadmin
前言 ​对于我们平时写代码运行,我们很少去关注编译和链接的过程,因为现在的开发环境都是集成(IDE)的,这些IDE一般都会将编译和链接的过程一步搞定,这一过程又被称为构建。但若经常写代码,经常会有很多莫名其妙的错误让我们不知所措,对于这些错误若我们能知其原因,那是再好不过了。因此本系列就是带你了解 ... 前言

推荐整理分享静态链接(linux 静态链接),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux 静态链接,静态链接时需要解决两个什么问题,静态链接和动态链接的区别,静态链接是在什么时候进行的,静态链接库和动态链接库的区别,静态链接是在()进行的;而动态链接是在()或()进行的,静态链接库和动态链接库的区别,静态链接和动态链接的区别,内容如对您有帮助,希望把文章链接给更多的朋友!

​对于我们平时写代码运行,我们很少去关注编译和链接的过程,因为现在的开发环境都是集成(IDE)的,这些IDE一般都会将编译和链接的过程一步搞定,这一过程又被称为构建。但若经常写代码,经常会有很多莫名其妙的错误让我们不知所措,对于这些错误若我们能知其原因,那是再好不过了。因此本系列就是带你了解这些编译器和链接器在背后的工作

梦开始的地方

​让我们先来看一个最最最经典的例子

//hello.c#include <stdio.h>int main(){ printf("hello world"); return 0;}

​事实上,运行以上过程,可以被分解为四步:预处理、编译、汇编、链接

预编译

​预处理器在预编译阶段会将源代码文件.c和相关的头文件编译为一个.i文件,其中主要处理“#”开头的预编译指令

静态链接(linux 静态链接)

​预编译过程主要处理规则:

删除所有注释 "//" 和 "/**/"处理所有条件预编译指令 "#if"、"#ifdef"等删除所有 "#define",且展开所有宏定义处理预编译指令"#include",将被包含的文件插入到相应的预编译指令位置。当然可能插入的文件还包含其他文件添加行号和文件名标识,以便于编译器在编译时产生调试所用的行号信息和产生编译错误或警告时可以显示行号保留所有#pragma指令,便于编译器使用编译

​所谓编译,就是将上一个预处理阶段处理完的文件进行词法分析、语法分析、语义分析和优化后生成的汇编代码文件。其过程最为关键且复杂。但是现在版本的GCC已经把预编译和编译合并为一个步骤,使用cc1来完成

​现有如下片段:

array[index] = (index + 4) * ( 2 + 6 )词法分析

​首先,源代码程序被输入到扫描器,运用类似有限状态机的算法将源代码的字符序列分割为一系列记号(token)

记号类型array标识符[左方括号index标识符]右方括号=赋值(左圆括号index标识符+加号4数字)右圆括号*乘号(左圆括号2数字+加号6数字)右圆括号词法分析的记号可分为:关键字、标识符、字面量(数字、字符串等)、特殊符号(加号等)识别记号时,扫描器也会将标识符放入符号表,将字面量常量放入文字表,以备往后的步骤使用语法分析

​接下来时语法分析。语法分析器对扫描器产生的记号进行语法分析,再产生语法树,语法树时以表达式为节点的树。语法分析过程会采用上下文无关语法

语法分析过程,会确定运算符号的优先级和含义。此时若出现表达式不合法,编译器则会报告语法分析阶段的错误语义分析

​语法分析会对完成了表达式的语法层面的分析,但其并不知道这个语句是否有意义,因此需要语义分析器进行语义分析,从而对整个语法树的表达式标识类型;若有类型需要做隐式转换,会在语法树中插入相应的转换节点

​语义分析分为两类,静态语义是编译器再编译器可以确定的语义;动态语义则是在运行期才能确定的语义

静态语义包括
本文链接地址:https://www.jiuchutong.com/zhishi/303788.html 转载请保留说明!

上一篇:JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常(javascript数据类型分为哪两类)

下一篇:python 如何调用api(python 如何调用c)

  • 详细为新手解说网店推广方法(萌新解说视频)

    详细为新手解说网店推广方法(萌新解说视频)

  • 苹果13pro怎么关闭智能调整图像智能功能(苹果13pro怎么关闭自动更新)

    苹果13pro怎么关闭智能调整图像智能功能(苹果13pro怎么关闭自动更新)

  • 苹果手表排水怎么解锁(苹果手表排水怎么取消)

    苹果手表排水怎么解锁(苹果手表排水怎么取消)

  • 微信好友删除怎么找回(微信好友删除怎么看聊天记录)

    微信好友删除怎么找回(微信好友删除怎么看聊天记录)

  • 抖音个人主页链接在哪(抖音个人主页链接是啥)

    抖音个人主页链接在哪(抖音个人主页链接是啥)

  • 苹果不连wifi怎么下载超过150m的软件(苹果不连wifi怎么开热点)

    苹果不连wifi怎么下载超过150m的软件(苹果不连wifi怎么开热点)

  • 微信删除的好友怎样恢复聊天记录(微信删除的好友聊天记录怎么恢复)

    微信删除的好友怎样恢复聊天记录(微信删除的好友聊天记录怎么恢复)

  • 通话记录能删除吗(通话记录能删除不)

    通话记录能删除吗(通话记录能删除不)

  • 晶体管的控制方式为(晶体管的控制方式为输入电流控制输出电流)

    晶体管的控制方式为(晶体管的控制方式为输入电流控制输出电流)

  • stm32能做什么(stm32能做什么毕业设计)

    stm32能做什么(stm32能做什么毕业设计)

  • p10plus可以人脸解锁吗(华为p10怎么开启人脸)

    p10plus可以人脸解锁吗(华为p10怎么开启人脸)

  • 微信满天星怎么出现(微信满天星怎么发)

    微信满天星怎么出现(微信满天星怎么发)

  • 手机qq怎么改群昵称(手机QQ怎么改群昵称)

    手机qq怎么改群昵称(手机QQ怎么改群昵称)

  • 戴尔笔记本fn键怎么取消(戴尔笔记本fn键在哪里)

    戴尔笔记本fn键怎么取消(戴尔笔记本fn键在哪里)

  • 好看视频怎么赚钱(好看视频怎么赚钱红包)

    好看视频怎么赚钱(好看视频怎么赚钱红包)

  • 小米cc9e防水不(小米cc9防水等级)

    小米cc9e防水不(小米cc9防水等级)

  • 登入界面中,登录和登陆哪个正确?(显示登录页面)

    登入界面中,登录和登陆哪个正确?(显示登录页面)

  • 安卓9不兼容解决办法(安卓手机不兼容)

    安卓9不兼容解决办法(安卓手机不兼容)

  • 微信怎么查认识天数(微信在哪里加好友)

    微信怎么查认识天数(微信在哪里加好友)

  • 华为petl20是什么型号(华为petl20支持联通卡吗)

    华为petl20是什么型号(华为petl20支持联通卡吗)

  • 小米pay怎么刷公交(小米pay怎么用)

    小米pay怎么刷公交(小米pay怎么用)

  • 监控摄像头时间不同步(全国摄像头实时监控)

    监控摄像头时间不同步(全国摄像头实时监控)

  • windows11怎么显示文件后缀名? win11显示后缀名的两种方法(windows11怎么显示桌面图标)

    windows11怎么显示文件后缀名? win11显示后缀名的两种方法(windows11怎么显示桌面图标)

  • WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现(web2的核心理念)

    WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现(web2的核心理念)

  • 织梦dedecms目录权限检测工具(织梦怎么用模板建站)

    织梦dedecms目录权限检测工具(织梦怎么用模板建站)

  • 供热管道属于什么经营范围内
  • 员工餐费用应该怎么记账
  • 劳务费发票是个人开还是公司开
  • 收到投资款如何写凭证
  • 持续经营净利润率怎么算
  • 滴滴电子发票可以看到行程吗
  • 小规模建筑业如何做账
  • 多开的增值税发票交多少税
  • 公允价值变动损益属于当期损益吗
  • 生产企业有哪些费用
  • 固定资产出租后还要折旧吗
  • 增值税10000交多少税
  • 劳务报酬代扣代缴个人所得税怎么做账
  • 购物卡开预付卡有风险吗
  • 小规模纳税人季度销售额不超过30万免征
  • 一般纳税人可以开1%的发票吗
  • 提前收取租赁收入的财务处理
  • 小型微利企业普惠性
  • 主营业务类别商业是什么
  • 外账成本要注意什么
  • 发票作废时间有多长
  • 开票含税和不含税哪个划算
  • 原材料对外投资进项税额可以抵扣吗
  • win7无法使用管理员权限
  • 事业单位的费用
  • 销售折扣单独开票
  • 固定资产折旧的会计凭证
  • win10电脑时间改了又跳回去
  • 应收存款利息计入什么科目
  • wind10记事本在哪
  • 库存现金盘亏会计分录原因待查
  • 存货的核算方法
  • 鱼湖国家森林中心在哪里
  • php文件扩展名是什么
  • 天国拯救晕倒的人多久起来
  • 怎么才能学a1
  • 小规模所得税申报表利润总额是填季报吗
  • 微信公众号认证300元每年都要吗
  • 哪些固定资产不能计提折旧
  • 未形成无形资产计入当期损益的
  • 个体户个税征收标准
  • mongodb局域网访问
  • 循环语句例题及解析
  • 购买电脑的过程
  • 股权转让需要开票吗怎么开
  • sql的应用
  • 用库存现金支付职工医药费用69元,会计人员
  • 利润表中的利息费用是利息支出吗
  • 房地产开发结转流程
  • 事业单位未取得相关证书不予受理
  • 国家知识产权专利网
  • 其他债权投资的特征有哪些
  • 货款收不回来了怎么做账
  • 银行存款负数如何计算
  • 实收资本增加印花税税目怎么填
  • 材料采购成本包括买价和采购费用
  • 经营性应付项目减少对经营活动现金
  • 财务软件摊销年限的最新规定
  • 固定资产盘亏计入固定资产清理吗
  • 工业企业外购材料采购成本包括
  • 会计凭证,报告怎么做
  • session入库有什么好处
  • winxp系统打不开
  • ubuntu16.04.7
  • linux系统关闭ftp服务
  • 如何用u盘装系统 知乎
  • win10系统怎么设置电脑密码
  • form表单中input设置为readonly和disabled的区别
  • linux文件目录管理命令
  • perl里怎么对数组实现一次遍历
  • opengl渲染流程图
  • 使用vue-cli快速搭建vue项目
  • shell脚本编程100例
  • jQuery 实现ajax传入参数含有特殊字符的方法总结
  • socket python
  • jquery课程内容总结
  • 国家税务局四川省电子税务局
  • 国家税务局通用机打发票查询
  • 滴灌带设备一套多少钱
  • 债权收购协议书
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设