OSError: someObject.o: cannot open shared object file: No such file or directory
OSError: someObject.o: cannot open shared object file: No such file or directory
我无法使用 python 加载共享对象库。我已经尝试将 LD_LIBRARY_PATH
设置为 someObject.o
所在的位置,并且当我使用非 sudo 命令 运行 python 脚本但是当我使用 sudo
我 运行 进入 linking 错误。
OSError: bbumintflib.o: cannot open shared object file: No such file or directory
有谁知道如何 link 一个 .o
文件到 .so
文件?
使用 ldd
,我知道 .so
找不到 .o
文件。
>>>ldd someSharedObject.so
linux-vdso.so.1 (0x00007ffca69af000)
someObject.o => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f53c96b8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f53c9a57000)
编辑:
这就是我构建对象和共享对象文件的方式
gcc -I ../include -I../../module1/include -I ../../module2/include --shared -fPIC someCFile.c -o someObject.o plat_linux.c
gcc someObject.o -shared -o someSharedObject.so
这是你的问题:
gcc -I ../include -I../../module1/include -I ../../module2/include --shared -fPIC someCFile.c -o someObject.o plat_linux.c
gcc someObject.o -shared -o someSharedObject.so
第一个命令生成一个奇数名称的共享库 someObject.o
。
第二个命令链接一个名为 someSharedObject.so
的新共享库,它依赖于 someObject.o
.
要解决此问题,请执行以下操作:
gcc -I ... --shared -fPIC someCFile.c plat_linux.c -o someSharedObject.so
我无法使用 python 加载共享对象库。我已经尝试将 LD_LIBRARY_PATH
设置为 someObject.o
所在的位置,并且当我使用非 sudo 命令 运行 python 脚本但是当我使用 sudo
我 运行 进入 linking 错误。
OSError: bbumintflib.o: cannot open shared object file: No such file or directory
有谁知道如何 link 一个 .o
文件到 .so
文件?
使用 ldd
,我知道 .so
找不到 .o
文件。
>>>ldd someSharedObject.so
linux-vdso.so.1 (0x00007ffca69af000)
someObject.o => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f53c96b8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f53c9a57000)
编辑:
这就是我构建对象和共享对象文件的方式
gcc -I ../include -I../../module1/include -I ../../module2/include --shared -fPIC someCFile.c -o someObject.o plat_linux.c
gcc someObject.o -shared -o someSharedObject.so
这是你的问题:
gcc -I ../include -I../../module1/include -I ../../module2/include --shared -fPIC someCFile.c -o someObject.o plat_linux.c
gcc someObject.o -shared -o someSharedObject.so
第一个命令生成一个奇数名称的共享库 someObject.o
。
第二个命令链接一个名为 someSharedObject.so
的新共享库,它依赖于 someObject.o
.
要解决此问题,请执行以下操作:
gcc -I ... --shared -fPIC someCFile.c plat_linux.c -o someSharedObject.so