У нас есть проект и общие библиотеки libprivate.so (частные), в которых использовались старые библиотеки libcurl.so.3. В систему добавлены новые системные библиотеки libcurl.so.4.
Из-за некоторых внутренних проблем прямо сейчас мы не хотим использовать последние библиотеки libcurl.so.4, мы хотим использовать libcurl.so.3.
Поэтому я скопировал libcurl.so.3 в локальную папку и соответственно установил LD_LIBRARY_PATH. Когда я связываю весь свой проект, он говорит, что существует конфликт версий между libcurl.so.4 и libcurl.so.3, требуется libprivate.so (libprivate.so давно скомпилирован с libcurl.3.so).
Должен ли я не беспокоиться об этом предупреждении и продолжать дальше?
Когда я правильно указываю LD_LIBRARY_PATH, в котором есть libcurl.so.3, почему он берется из системного каталога /usr/lib64/libcurl.so.4? когда я делаю ldd my_binary, он берется из libcurl.so.4. Как мне это остановить? Указание -L с конкретным местоположением также не работает. Модификация /etc/ld.conf подойдет для всей системы. Я хочу сделать это, когда запустил свой проект.
Указание явного пути работает как /home/mydir/libcurl.so.3, но я не хочу этого делать.
Я хочу иметь эти условия только при выполнении своего проекта. В других случаях он может использовать последние библиотеки.
Спасибо за вашу помощь
libcurl.so.4
из другой библиотеки? Вы можете использоватьtldd
, чтобы узнать, откуда берется зависимость библиотеки. Если это не из другой библиотеки, покажите всю команду компоновщика. - person Jonathan Wakely   schedule 10.03.2014-L
и~/lib/x86_64/
, иначе оболочка не расширит~
- person Jonathan Wakely   schedule 10.03.2014