Я использую libcurl
для своей утилиты, и до сих пор она работала очень хорошо для всех платформ Linux.Я скачал, разархивировал и просто следовал инструкциям без каких-либо изменений.Мой продукт использует файл libcurl.so
и связан динамически.Файл .so поставляется вместе с нашим продуктом.Недавно в Suse возникли проблемы, в результате которых мы обнаружили, что Libcurl по умолчанию связан, а в установке произошел конфликт.
Чтобы избежать этой проблемы, мы пытались переименовать libcurl.so
в libother_curl.so
, но это не помоглоне работает и мои двоичные файлы все еще показывают libcurl.so как зависимость через ldd.С тех пор я узнал, что в формате ELF общих объектов linux имя файла жестко закодировано как имя файла 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, который я мог бы изменить?
Я пытался изменить то, что, по моему мнению, могло быть очевидным местоположением, но либо не могло генерировать библиотеки, либо создавалось с тем же именем.
Любая помощь очень ценится.