我正在尝试为最初使用Go编写的程序构建Python 3的绑定。以下是我迄今为止所做的事情:
setuptools
想要生成命令的方式,ld
无法“找到”库。没有任何提示没有帮助,ld
不会产生任何可解析的输出。
setuptools
生成的命令如下所示:
gcc -pthread -shared build/temp.linux-x86_64-3.6/pykubectl/lib/bindings.o \
build/temp.linux-x86_64-3.6/pykubectl/wrapped.o \
-lpykubectl.so \
-o build/lib.linux-x86_64-3.6/pykubectl/wrapped.cpython-36m-x86_64-linux-gnu.so \
-L/home/.../pykubectl/pykubectl/lib
这失败了:/usr/bin/ld: cannot find -lpykubectl.so
但是,如果我这样做:
gcc -pthread -shared build/temp.linux-x86_64-3.6/pykubectl/lib/bindings.o \
build/temp.linux-x86_64-3.6/pykubectl/wrapped.o \
/home/.../pykubectl/pykubectl/lib/libpykubectl.so \
-o build/lib.linux-x86_64-3.6/pykubectl/wrapped.cpython-36m-x86_64-linux-gnu.so
它确实编译。
以下是有关libpykubectl.so
的一些信息:
ldd /home/.../pykubectl/pykubectl/lib/libpykubectl.so
linux-vdso.so.1 => (0x00007ffd7cccd000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f69662d2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6965f0b000)
/lib64/ld-linux-x86-64.so.2 (0x000055e410408000)
file /home/.../pykubectl/pykubectl/lib/libpykubectl.so
/home/.../pykubectl/pykubectl/lib/libpykubectl.so: \
ELF 64-bit LSB shared object,
x86-64, version 1 (SYSV),
dynamically linked,
BuildID[sha1]=d4225259207743ceaecda8d90368c13732d0f310,
not stripped
(为便于阅读而格式化)。