Как изменить путь поиска динамической библиотеки по умолчанию для libasan

У меня есть приложение, которое должно работать на разных платформах, например, ARM, i386, amd64 и т. Д. Я хочу проверить любые возможные утечки памяти, у меня в GCC включено средство очистки адреса, как
-fsanitize=address
Мы используем buildroot для компиляции всего приложения OS +. Чтобы убедиться, что у каждого разработчика установлены одинаковые версии библиотеки, мы упаковываем все необходимые динамические библиотеки в ProjectX/lib
путь и установите его как LD_LIBRARY_PATH.
Все работает нормально, если адрес дезинфицирующего средства выключен. При компиляции с помощью address-sanitizer и запуске приложения выдается

/lib/i386-linux-gnu/libm.so.6: version `GLIBC_2.23' not found (required   by BUILD/host_shared_0_1/host/usr/i686-buildroot-linux-gnu/lib/libasan.so.1)

GLIBC_2.23 уже существует, но упакован в $ ProjectX / lib
Однако libasan ищет его в / lib / i386-linux-gnu / и, найдя несовместимую версию, выдает ошибку.

QS: Как я могу дать команду libasan искать нужные библиотеки по пути, указанному в LD_LIBRARY_PATH только.

0

Решение

Кажется, что ваш buildroot и фактическая среда выполнения несовместимы с двоичным кодом, т. Е. Libasan требует версию libm новее чем установленный в окружающей среде. Это не проблема Asan, двоичная несовместимость может вызвать проблемы и для остальной части вашего программного обеспечения. Для получения подробной информации, Google для «версия GLIBC_2.23 не найдена».

Как я могу поручить libasan искать необходимые библиотеки в пути
указывается только LD_LIBRARY_PATH.

Вот что он делает сейчас.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector