【发布时间】:2010-11-02 15:24:51
【问题描述】:
我将libcurl 用于我的实用程序,到目前为止它在所有 Linux 平台上都运行良好。我下载,解压缩并简单地按照给出的说明进行操作,没有任何更改。我的产品使用libcurl.so 文件并动态链接。 .so 文件与我们的产品捆绑在一起。最近Suse出现问题,发现Libcurl默认是捆绑的,安装有冲突。
为了避免这个问题我们尝试将libcurl.so 重命名为libother_curl.so,但它不起作用并且我的二进制文件仍然通过 ldd 将 libcurl.so 显示为依赖项。从那以后,我了解到 linux 共享对象的 ELF 格式将文件名硬编码为标题中的 SO 文件名。(我可以用objdump -p 验证相同)。
现在我的问题是最简单的方法是什么?如何构建具有不同名称的 libcurl? 我的原始过程涉及使用以下开关运行 configure
./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 论坛上提交了这个。