当前位置: 首页 > news >正文

GNU链接器(LD):输入分区的垃圾回收及保护处理(KEEP命令)介绍

0 参考资料

GNU-LD-v2.30-中文手册.pdf
GNU linker.pdf

1 前言

一个完整的编译工具链应该包含以下4个部分:
(1)编译器
(2)汇编器
(3)链接器
(4)lib库
在GNU工具链中,对应的是:
(1)编译器:GCC(GNU Compiler Collection,GNU编译器套件)
(2)汇编器:GAS(GNU Assembler,GNU汇编器)
(3)链接器:LD(GNU Linker,GNU链接器)
(4)lib库:glibc(GNU C Library,GNU C 库)
本文介绍GNU链接器(LD)链接器脚本中输入分区的垃圾回收及保护处理(KEEP命令)。

2 GNU链接器(LD):输入分区的垃圾收集处理(KEEP命令)介绍

当我们的编译命令添加了’–gc-sections’命令选项,链接时会进行垃圾收集,可能会将不需要被当做垃圾处理的分区处理掉。为了避免这种情况发生,可以使用KEEP()命令将不需要淘汰的输入分区保护起来。例子如下:

KEEP(*(.init))

以上KEEP命令保护.init段,.init段会被libc_nano(精简版C库)使用到,要避免被优化掉。

http://www.lryc.cn/news/457695.html

相关文章:

  • 论文翻译 | Fairness-guided Few-shot Prompting for LargeLanguage Models
  • 【分布式微服务云原生】战胜Redis脑裂:深入解析与解决方案
  • 数据治理与可持续发展:开启企业价值新模式——The Open Group 2024生态系统架构·可持续发展年度大会邀您共襄盛举
  • 数据库的分类及主流数据库
  • Qt C++设计模式->备忘录模式
  • Vue使用@别名替换后端ip地址
  • 强大的PDF到Word转换工具
  • js进阶——深入解析JavaScript中的URLSearchParams
  • 如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
  • 操作系统的了解及安装
  • 【C++篇】虚境探微:多态的流动诗篇,解锁动态的艺术密码
  • uniapp的相关知识(1)
  • uniapp生成随机数
  • 使用jenkins将airflow-dbt部署到服务器上
  • 初学java练习题【1】
  • 大模型应用探讨,免费AI写作、一键PPT、免费PDF百种应用、与AI对话
  • 计算机视觉之OpenCV vs YOLO
  • 【深度学习基础模型】胶囊网络(Capsule Networks, CapsNet)详细理解并附实现代码。
  • 科普向 -- 什么是RPC
  • SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(基础)
  • 【现代控制理论】第2-5章课后题刷题笔记
  • (四)Proteus仿真STM32单片机使用定时器控制LED
  • Python快速编程小案例——打印蚂蚁森林植树证书
  • Cherno游戏引擎笔记(61~72)
  • FWA(固定无线接入),CPE(客户终端设备)简介
  • 使用IDEA启动项目build时,解决Java编译时内存溢出问题:OutOfMemoryError深入解析
  • Kafka如何实现高可用
  • 高级java每日一道面试题-2024年10月1日-服务器篇[Redis篇]-Redis数据结构压缩列表和跳跃表的区别?
  • 使用 ElLoading 组件来实现加载(loading)功能
  • Win10 IDEA连接虚拟机中的Hadoop(HDFS)