Как мне избавиться от LD_LIBRARY_PATH во время выполнения?
Я строю приложение C ++, которое использует IntelIPP библиотека. Эта библиотека по умолчанию устанавливается в / opt и требует от вас установкиLD_LIBRARY_PATH
как для компиляции, так и для запуска вашего программного обеспечения (если вы выбрали ссылку на общую библиотеку, что я и сделал). Я уже изменил мойconfigure.ac
/Makefile.am
так что мне не нужно устанавливать эту переменную при компиляции, но я все еще не могу найти общую библиотеку во время выполнения; как я это сделал?
Я собираю с-Wl, -R/path/to/libdir
использование флагаg++
Обновление 1На самом деле моя двоичная программа имеет правильно подключенные библиотеки IPP, но только одна из них:
$ ldd myprogram
linux-vdso.so.1 => (0x00007fffa93ff000)
libippacem64t.so.6.0 => /opt/intel/ipp/6.0.2.076/em64t/sharedlib/libippacem64t.so.6.0 (0x00007f22c2fa3000)
libippsem64t.so.6.0 => /opt/intel/ipp/6.0.2.076/em64t/sharedlib/libippsem64t.so.6.0 (0x00007f22c2d20000)
libippcoreem64t.so.6.0 => /opt/intel/ipp/6.0.2.076/em64t/sharedlib/libippcoreem64t.so.6.0 (0x00007f22c2c14000)
[...]
libiomp5.so => not found
libiomp5.so => not found
libiomp5.so => not found
Конечно, библиотека есть:
$ locate libiomp5.so
/opt/intel/ipp/6.0.2.076/em64t/sharedlib/libiomp5.so