2010-11-02 47 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 $配置 $使

相關問題