CFFI如何避免手动设置LD_LIBRARY_PATH
CFFI how to avoid manual setting of LD_LIBRARY_PATH
我正在使用 python CFFI 围绕一些名为 libfpta 的外部库构建一个包装器,我想将其放入我的 python 存储库(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,它没有用。
哦,我明白了)
extra_link_args=['-Wl,-rpath=./lib'],
非常感谢大家!
我正在使用 python CFFI 围绕一些名为 libfpta 的外部库构建一个包装器,我想将其放入我的 python 存储库(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,它没有用。
哦,我明白了)
extra_link_args=['-Wl,-rpath=./lib'],
非常感谢大家!