2017-05-02 64 views
0

我正在使用python CFFI来构建一个名为libfpta的外部库,我想将它放在我的python repo(myrepo/lib/libfpta.so)中,从而分发与python代码一起。第一件好事是包装器表示为共享对象(_amnesia.so)实际上是生成的,但为了甚至导入它,我必须正确设置LD_LIBRARY_PATH。 换句话说CFFI如何避免手动设置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) 

我一直在试图通过设置

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

我set_source声明中解决这个问题,建议there,通过它没有工作。

回答

0

哦,我明白了)

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

非常感谢大家!