2010-11-02 44 views
1

我正在使用libcurl作为我的工具,它的工作非常好,直到现在,所有的Linux平台。我下载,解压缩,只需按照给出的说明进行操作即可,无需任何更改。我的产品使用libcurl.so文件并且动态链接。 .so文件与我们的产品捆绑在一起。最近Suse出现了一些问题,我们发现Libcurl是默认捆绑的,安装时有冲突。如何用不同的目标名称构建libcurl.so?

为了避免这个问题我们尝试重新命名libcurl.solibother_curl.so但它没有工作和我的二进制文件仍然显示libcurl.so通过LDD的依赖。从那以后,我得知linux共享对象的ELF格式将文件名硬编码为头文件中的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我可以改变?

我试图改变我认为可能是明显的位置,但无论是无法生成库或生成相同的名称。

任何帮助,非常感谢。

+0

我也曾在卷曲论坛提交了这一点。 – user88595 2010-11-02 15:25:22

回答

0

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

+0

一些地方限制阻止我们在这个时间点上这种方式。这是长期存在的。谢谢。 – user88595 2010-11-11 07:31:13

1

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

$ find。 -name Makefile.am | xargs的SED -i 'S/libcurl中(.la)/ libxxx_curl \ 1/G' $ buildconf $配置 $使

相关问题