CFFI如何避免手动设置LD_LIBRARY_PATH

时间:2017-05-02 11:54:05

标签: python linker python-cffi

我正在使用python CFFI在一些外部库(称为libfpta)周围构建一个包装器,我想把它放在我的python repo(myrepo / lib / libfpta.so)中,然后与python代码一起分发。第一件好事是实际生成了表示为共享对象(_amnesia.so)的包装器,但为了甚至导入它,我必须正确设置LD_LIBRARY_PATH。 换句话说

(venv) magniff@magniffy700:~/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,它没有用。

1 个答案:

答案 0 :(得分:0)

哦,我明白了。)

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

非常感谢大家!