gpt4 book ai didi

linux - 如何使用不同的目标名称构建 libcurl.so?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:54 24 4
gpt4 key购买 nike

我将 libcurl 用于我的实用程序,它目前在所有 Linux 平台上运行良好。我下载、解压缩并简单地按照给出的说明进行操作,没有进行任何更改。我的产品使用 libcurl.so 文件并动态链接。 .so 文件与我们的产品捆绑在一起。最近在 Suse 中出现问题,我们发现默认捆绑了 Libcurl,并且在安装时存在冲突。

为避免此问题我们尝试将 libcurl.so 重命名为 libother_curl.so 但它不起作用 我的二进制文件仍然显示 libcurl .so 作为 ldd 的依赖项。从那以后,我了解到 linux 共享对象的 ELF 格式在 header 中指定了硬编码为 SO 文件名的文件名。(我可以用 objdump -p 来验证这一点)。

现在我的问题是最简单的方法是什么?如何构建具有不同名称的 libcurl?我的原始过程涉及使用以下开关运行配置

./configure --without-ssl --disable-ldap --disable-telnet --disable-POP3 --disable-IMAP --disable-RTSP --disable-SMTP --disable-TFTP  --disable-dict --disable-gopher --disable-debug --enable-nonblocking --enable-thread --disable-cookies --disable-crypto-auth --disable-ipv6 --disable-proxy --enable-hidden-symbols --without-libidn --without-zlib

Make

然后从/lib/.libs 中选择生成的文件

是否有可用的配置开关,我可以在其中指定目标文件名?我可以更改任何特定的 Makefile 吗?

我尝试更改我认为可能明显的位置,但要么无法生成库,要么生成的库具有相同的名称。

非常感谢任何帮助。

最佳答案

我从 curl 论坛得到了答案(感谢 Dan)。基本上我们必须使用 makefile.am 作为起点来遍历文件列表并更改库名称“libxxx_curl”。

$寻找。 -name Makefile.am |xargs sed -i 's/libcurl(.la)/libxxx_curl\1/g'$构建配置文件$配置$制作

关于linux - 如何使用不同的目标名称构建 libcurl.so?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com