2017-05-02 1 views
0

J'utilise python CFFI pour construire un wrapper autour d'une bibliothèque externe, appelée libfpta, que je voudrais mettre dans mon repo python (myrepo/lib/libfpta.so) et ainsi distribuer à côté du code python. Première bonne chose est que wrapper représenté comme un objet partagé (_amnesia.so) est réellement généré, mais pour l'importer, je dois avoir LD_LIBRARY_PATH correctement défini. En d'autres termesCFFI comment éviter le réglage manuel de LD_LIBRARY_PATH

(venv) [email protected]:~/workspace/amnesia $ ldd _amnesia.so 
linux-vdso.so.1 => (0x00007ffeb506f000) 
libfpta.so => not found # path to actual code is not set 
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fed7910b000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fed78d41000) 
/lib64/ld-linux-x86-64.so.2 (0x0000563c4cac8000) 

J'ai essayé de résoudre ce problème en fixant

extra_link_args=['-Wl,-rpath=./lib/libfpta.so'], 

dans ma déclaration de set_source, tel que recommandé there, par le tir travail.

Répondre

0

Oh, je l'obtenir)

extra_link_args=['-Wl,-rpath=./lib'], 

Un grand merci à tout le monde!