Запретить автоинструментам устанавливать rpath при компиляции моей программы

Я работаю над примером проекта autotools, который создает общую библиотеку и программу. Программа должна ссылаться на разделяемую библиотеку. Но когда я соберу программу, libtool установит rpath следующим образом:

RPATH=/usr/local/lib

чего я не хочу.

Согласно Debian Wiki, libtool не должен устанавливать rpath, когда библиотека находится в пути поиска по умолчанию (роль libtool).

Согласно этому сайту /usr/local/lib следует находиться в пути поиска компоновщика по умолчанию.

Библиотека и программа создаются одним и тем же проектом autotools, поэтому библиотека не устанавливается при сборке программы.

Кто-нибудь знает, почему libtool все равно устанавливает rpath?


person StMartin81    schedule 19.06.2015    source источник
comment
По сути, вы хотите знать, как переопределить RPATH. Я предполагаю, что вы позаботитесь об обнаружении платформы дистрибутива.   -  person John Greene    schedule 05.08.2018


Ответы (1)


  • с помощью readelf readelf -d libfftw3_mpi.so вы можете проверить, содержит ли ваша библиотека такой атрибут в динамическом разделе.

  • с экспортом LD_DEBUG=libs вы можете отлаживать путь поиска, используемый для поиска ваших библиотек

  • с помощью chrpath -r можно изменить rpath

Как ответил @bonoparte в https://stackoverflow.com/a/33520976/4379130

person John Greene    schedule 05.08.2018