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