Я прочитал много рекомендаций, в которых говорится, что LD_LIBRARY_PATH
ищется до всего остального, но одна из моих .so библиотек связывается с libtdc++.so.6
в /usr/lib64
.
ldd mylib.so:
...
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f82abd18000)
...
Я хочу, чтобы mylib.so
компоновался с libstdc++.so.6
в другом месте, например /apps/gcc_4.8.0/lib/libstdc++.so.6
Поэтому я добавляю /apps/gcc_4.8.0/lib
в LD_LIBRARY_PATH
, в котором нет /usr/lib64
, но он все равно не находит его там.
Если я добавлю:
setenv LD_PRELOAD /apps/gcc_4.8.0/lib/libstdc++.so.6
в окружение, ошибок компоновщика больше нет. Ура, но это не решает проблему. Пользователи ниже по течению не захотят зависеть от того, что эта библиотека находится в нужном месте. ПОЧЕМУ СНАЧАЛА НЕ ВЫПОЛНЯЕТСЯ ПОИСК ПО ПУТИ LD_LIBRARY_PATH!!!?