栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何链接到特定的glibc版本?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何链接到特定的glibc版本?

您是正确的,因为glibc使用符号版本控制。如果你是好奇,符号版本实施的glibc
2.1介绍介绍这里是太阳的符号版本方案中描述的扩展这里。

一种选择是静态链接您的二进制文件。这可能是最简单的选择。

您也可以在chroot构建环境中构建二进制文件,或使用glibc- new => glibc - old 交叉编译器来构建二进制文件。

根据http://www.trevorpounds.com博客文章

链接到较旧版本的符号(glibc)


,只要使用相同的

.symver

指令

就可以强制将任何符号
链接到较旧的符号

,只要该符号有效-
op,用于首先定义版本化符号。以下示例摘自博客文章。

以下示例利用了glibc的realpath,但确保将其链接到较旧的2.2.5版本。

#include <limits.h>#include <stdlib.h>#include <stdio.h>__asm__(".symver realpath,realpath@GLIBC_2.2.5");int main(){    const char* unresolved = "/lib64";    char resolved[PATH_MAX+1];    if(!realpath(unresolved, resolved))        { return 1; }    printf("%sn", resolved);    return 0;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号