如何链接到旧版本的数学库?

问题描述 投票:0回答:1

我即将向我的客户发布一个库(.so)。但是,我客户的平台是一个非常老的debian(于2017年发布9.1)。我的libray仅适用于> = glibc-2.27。我设法通过以下技巧运行程序

// copy libm-2.27.so from my computer to the old debian
ln -sf ./libm-2.27.so libm.so.6
gcc ./test.c -o ./test -lmylib -L ./ -lm
LD_LIBRARY_PATH=`pwd` ./test

但是我的客户不接受此解决方案。可以链接到旧版本的数学库吗?例如,客户端给了我数学库,然后我将其库链接到我的计算机中。

谢谢!

linux ubuntu gcc glibc libc
1个回答
0
投票

我的libray仅适用于> = glibc-2.27。

是因为您实际上需要已添加到GLIBC-2.27的功能,还是因为您的系统刚好安装了该版本,并且您不知道如何为较旧的系统进行构建?

从评论看来,您实际上不是需要 GLIBC-2.27。

在这种情况下,最简单的解决方案是安装其中装有Debian 9.1的VM,并在该VM中构建您的库。

这具有一个额外的优势,您可以在与客户端库匹配的环境中,在将库运送到客户端之前,先对其进行测试。如果您不想要VM,则列出其他解决方案here

我设法通过以下技巧来运行程序...但是我的客户不接受此解决方案。

您的客户端是

智能

)拒绝该解决方案:它通常无法正常工作,并且在这样的环境中运行会使您的客户端面临许多潜在的不确定行为和崩溃。要了解为什么会这样,请阅读this answer
© www.soinside.com 2019 - 2024. All rights reserved.