Linux在编译时没有提示错误,但在执行时提示找不到共享库, 比如:
./main: error while loading shared libraries: librtcm.so: cannot open shared object file: No such file or directory
原因:
1、确实没有,whereis 或 locate 都找不到该库文件。
2、系统里有,但没在默认的路径下,如 /lib , /usr/lib 下。
3、编译生成该库文件的编译器与执行平台不兼容。
解决,将库放进默认目录,或在 /etc/ld.so.conf 中添加搜索路径。
如果还是不行的话,那就有可能是第三个原因了,例如:从千寻位置下载的 librtcm.so 是用 arm-none-linux-gnueabi 编译的,但树莓派是 arm-linux-gnueabihf ,有硬浮点的,不兼容。
才疏学浅,短短的问题,花了很长时间才弄明白。