Linux基础 - libc.so调试版本编译

技术文档记录

问题:使用自编译的libc.so库进行动态链接报错

步骤:

  1. 获取源码:下载libc源码 https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
  2. 调试模式:使用 export CFLAGS=" -g3 -Og" 来编译 libc.so
  3. 测试编译:使用编译后的 libc.so 来编译示例程序 demo
  4. 定位问题:为了增加详细的错误输出,设置链接标志 export LDFLAGS="${LDFLAGS} -Wl,-verbose"

问题分析

  1. 替换不完整:最初在原有工具链的基础上,只替换了 crt1.ocrti.ocrtn.olibc.sold.so

最后解决问题的方法

一定要正确使用 make install
  1. 重要的配置步骤:运行 ./configure --prefix=/path/to/install 来设置安装路径
  2. 结合 --prefix 参数,执行 make install 后,所有的需要使用到该组件的库或者头文件都会整理到 /path/to/install
  3. 完整替换所有相关文件,才能确保库文件的正常功能

编译指定C库的正确姿势

设置编译器和链接器的标志:

CFLAGS="-I${LIBCPATH}/include"
LDFLAGS="-L${LIBCPATH}/lib -Wl,--rpath=${LIBCPATH}/lib -Wl,--dynamic-linker=${LIBCPATH}/lib/ld-2.29.so"

基础说明

告诉链接器使用的选项:

  1. 运行时搜索路径:-Wl,--rpath=${LIBCPATH}/lib
  2. 动态库链接器:-Wl,--dynamic-linker=${LIBCPATH}/lib/ld-2.29.so

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

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

相关文章

STM32 HAL库 利用CH376进行USB文件读写

STM32 其实可以进行读取USB文件,但仅限于F4以上芯片才可以进行SUB文件读写,但在项目开发中,往往用不到此芯片,那么只能通过外挂的USB芯片进行USB文件读写,本文则是采用STM32F103的SPI与CH376进行通信,通过CH376操作指令进行操作。 1、CH376介绍 CH376芯片 是沁恒的一款文…

Web前端-前端工程化

黑马程序员JavaWeb开发教程 文章目录 一、前后端分离开发1、介绍(1)前后端混合开发(2)、前后端分离开发 2、YAPI(1)介绍 二、前端工程化-环境准备1、Vue-cli(1)NodeJS安装教程 三、前…

【软件工程中的增量模型】

文章目录 前言什么是增量模型?增量模型的优点1. 风险控制2. 增量交付3. 可变性4. 提高可维护性 增量模型的缺点1. 需求变更的管理2. 集成测试的复杂性3. 可能的性能问题 前言 增量模型是一种迭代式的软件开发模型,注重将系统划分为多个子系统或模块&…

客服话术分享:客服如何挖掘需求?

电商客服主动挖掘询问顾客需求是非常重要的,这就需要我们具备一定的沟通技巧。今天这篇客服话术分享,很适合想提升业绩的你们哦! 一、打招呼式询问需求: 1.欢迎光临,本店竭诚为您服务~请问您有什么具体想了解的问题吗&…

【PHP】PHP7中的引用计数

目录 一、环境二、前言三、字符串类型四、数组类型问题1:不变数组的作用是什么?问题2:为什么非空的不变数组的refcount初始值是2?五、引用类型六、参阅一、环境 PHP 7.4 二、前言 PHP的变量在底层有一个引用计数(refcount)属性,这个引用计数是为垃圾回收(GC)服务的…

力扣数据库题库学习(4.24日)

1068. 产品销售分析 I 问题链接 思路分析 编写解决方案,以获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。返回结果表 无顺序要求 。 这个问题很简单,查询两张表内的指定字段。这个考的其实就是数据库的连接&am…

半字节16进制转asci

void uartTxHexByte(uint8_t Data) {uartTxByte(nibbleToHex(Data >> 4));uartTxByte(nibbleToHex(Data & 0x0F)); }uint8_t nibbleToHex(uint8_t nibble) {uint8_t ret nibble;if(nibble < 10){ret 0;}else{ret A - 10;}return(ret); }

架构师系列-MYSQL调优(六)- 排序优化

MySQL中的两种排序方式 索引排序: 通过有序索引顺序扫描直接返回有序数据额外排序: 对返回的数据进行文件排序ORDER BY优化的核心原则: 尽量减少额外的排序&#xff0c;通过索引直接返回有序数据。 索引排序 因为索引的结构是B树&#xff0c;索引中的数据是按照一定顺序进行…

janus架构学习

基础介绍 Janus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器&#xff0c;它支持在Linux的服务器或MacOS上的机器进行编译和安装。Janus 是使用C语言进行编写的&#xff0c;它的性能十分优秀。 架构 janus为sfu架构 模块结构图 模块说明 core模…

VR全景创业项目应该如何开展?未来有市场吗?

伴随着5G网络的发展&#xff0c;VR全景得到了众多的关注和提升。与此同时&#xff0c;各行各业都开始关注自身产业在互联网的展示效果&#xff0c;因为年轻一代的生活已经离不开互联网&#xff0c;而VR全景在互联网上的3D展示效果能给商家带来流量&#xff0c;提升营业额。 随着…

【Qt】.ui文件转.h文件

1、打开qt命令行 2、转换 uic -o ui.h mainwindow.ui

前端补充17(JS)

一、JS组成成分 JS的组成成分&#xff0c;由三部分组成 第一、ECMAScript&#xff1a;语法规则&#xff0c;如何定义变量&#xff0c;数据类型有哪些&#xff0c;如何转换数据类型&#xff0c;if判断 if-else while for for-in forEach do-while switch 数组 函数 对…

欧美助听器市场热门品牌盘点,国产爱可声备受青睐

近年来&#xff0c;随着中国技术的不断进步和品质的提升&#xff0c;国产助听器品牌爱可声在欧美市场备受瞩目。在欧美国家助听器市场&#xff0c;有许多热门品牌分别为&#xff1a;峰力、斯达克、瑞声达、爱可声等。这些品牌凭借其悠久的历史、先进的技术和高品质的产品&#…

【人工智能基础】智能Agent

一、Agent定义 能通过传感器感知环境&#xff0c;并且能通过执行器对环境产生影响的任意事物都可以被称为Agent。 AgentAgent程序运行Agent程序的物理系统 Agent函数 从感知历史P*到动作A的一种映射f。即f:P*→A。是感知历史到行为决策这个映射的抽象描述&#xff0c;体现A…

monorepo搭建记录

最终文件效果 1、准备环境 npm pnpm 2、创建文件夹npm init vite // 名字可以为main&#xff08;自定义&#xff09; 创建主应用main npm init vite // 名字可以为main monorepo下创建文件夹web 创建辅助应用 例&#xff1a;react-demo&#xff0c;具体步骤&#xff1a;1、 cd…

HackMyVM-Hommie

目录 信息收集 arp nmap WEB web信息收集 dirsearch ftp tftp ssh连接 提权 系统信息收集 ssh提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:77:ed:84, IPv4: 192.168.9.126 Starting arp-…

前端学习<四>JavaScript——定时器

定时器的常见方法 setInterval()&#xff1a;循环调用。将一段代码&#xff0c;每隔一段时间执行一次。&#xff08;循环执行&#xff09; setTimeout()&#xff1a;延时调用。将一段代码&#xff0c;等待一段时间之后再执行。&#xff08;只执行一次&#xff09; 备注&…

【svgwrite 库简介,附代码】如何将 .ttf 字体文件转化为 .svg 矢量图形?

当涉及到字体和矢量图形时&#xff0c;.ttf 和 .svg 是两种不同的文件格式&#xff1a; .ttf (TrueType Font)&#xff1a; .ttf 文件是一种常见的字体文件格式&#xff0c;用于存储 TrueType 字体。TrueType 是一种字体轮廓的标准&#xff0c;它使用贝塞尔曲线描述字形&…

【Redis(5)】Redis哨兵模式配置示例

Redis的三种高可用方案对比参考上一篇博客&#xff1a;深入理解Redis三种高可用方案&#xff0c;以做出明智的选择&#xff0c;下面要探讨的是三种方案其中的一种。 在Redis的主从模式中&#xff0c;虽然可以从节点提供读取操作的负载均衡&#xff0c;并且作为数据的热备份&am…