共享对象库未找到对象库

共享对象库未找到对象库

我正在尝试构建一个共享对象库,但是当我生成共享对象库时,它说找不到对象文件。

OSError: lib1.o: cannot open shared object file: No such file or directory

然后我运行ldd命令来检查依赖项是什么

linux-vdso.so.1 =>  (0x00007fff47dff000)
lib1.o => not found
lib2.o => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f61023db000)
/lib64/ld-linux-x86-64.so.2 (0x00007f610297c000)

我正在使用以下命令编译 gcc。

gcc -I ../../path1/include -I ../../path2/include --shared -fPIC file1.c -o lib1.o gcc -I ../../path1/include -I ../../path3/include --shared -fPIC file2.c -o lib2.o gcc lib1.o lib2.o -shared -o lib2.so

我找到了一个快速解决方案,即将环境变量设置LD_LIBRARY_PATH为 lib1.o 和 lib2.o 所在的路径,但这需要在每次登录时运行。我想要一个可行的解决方案。为什么找不到目标文件?有没有办法让共享对象文件包含对象文件,这样就不需要指定路径?

相关内容