Заставить компоновщик найти библиотеку stdc++ в нестандартном каталоге

Я прочитал много рекомендаций, в которых говорится, что 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!!!?

0
10.06.2016, 18:25
0 ответов

Теги

Похожие вопросы