Sto creando un'applicazione C++ che utilizza la libreria Intel IPP. Questa libreria è installata per impostazione predefinita in/opt e richiede di impostare LD_LIBRARY_PATH
sia per la compilazione che per l'esecuzione del software (se si sceglie il collegamento alla libreria condivisa, cosa che ho fatto). Ho già modificato il mio configure.ac
/Makefile.am
in modo che non sia necessario impostare tale variabile durante la compilazione, ma non riesco ancora a trovare la libreria condivisa in fase di esecuzione; Come lo faccio?Come faccio a sbarazzarmi di LD_LIBRARY_PATH in fase di esecuzione?
Sto compilando con la bandiera -Wl, -R/path/to/libdir
utilizzando g++
Update 1: In realtà il mio programma binario ha alcune librerie IPP correttamente collegati, ma solo uno non è:
$ 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
Naturalmente la biblioteca è lì:
$ locate libiomp5.so
/opt/intel/ipp/6.0.2.076/em64t/sharedlib/libiomp5.so
Potrei aver bisogno di cambiare la domanda a qualcos'altro, ma ho bisogno di suggerimenti, sono a corto di idee – Kjir
Hm, mi chiedo se sia una coincidenza che a quello manchi anche l'estensione del numero di versione - forse l'IPP non è proprio installarsi giusto? – Cascabel
Mi chiedo se la libreria mancata non fa riferimento al tuo programma, ma piuttosto dalle biblioteche che i tuoi riferimenti? –