目前我有一个使用gcc编译的共享库,我必须构建一个使用此C共享库的二进制文件(使用g ++)。如果我用gcc编译它,没有加载错误,一切正常。 现在,如果我用g ++编译共享库并重新编译使用g ++库的二进制文件,那么在运行时,它会抱怨即使路径正确也无法找到库。
当使用gcc编译库时,这是ldd输出:
ldd adas_bin | grep -i ovx
/home/ubuntu/Working/bin/libOVX.so (0xf6e02000)
这是使用g ++编译时的ldd输出(该文件实际存在于该路径中):
ldd adas_bin | grep -i ovx
/home/ubuntu/Working/bin/libOVX.so => not found
这是两个库版本的文件命令的输出:
ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked
当使用用g ++编译的库运行二进制文件时,我得到了这个:
./adasbin: error while loading shared libraries: /home/ubuntu/Working/bin/libOVX.so: cannot open shared object file: No such file or directory
使用库的g ++版本可能会出错?