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

时间:2010-11-02 15:24:52

标签: linux libcurl

我正在使用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吗?

我尝试改变我认为可能是明显的位置,但要么无法生成libs,要么生成了相同的名称。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

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

$ find。 -name Makefile.am | xargs sed -i的/ libcurl(.la)/ libxxx_curl \ 1 / g' $ buildconf $配置 $化妆

答案 1 :(得分:0)

我很多商业应用程序将他们的特定库版本捆绑在非标准路径中,然后在启动脚本中调整环境变量LD_LIBRARY_PATH,以避免冲突。恕我直言,这比尝试更改目标名称更好。