描述一下我遇到的问题,编译某个文件的时候需要用一个共享库,比如说是a.so.0.0.0
该共享库在/home/cc/test目录下.我写了一个测试文件,使用该共享库.并且在/usr/lib目录下
建立了一个链接a.so指向/home/cc/test/a.so.0.0.0.
编译文件
gcc test.c -la -o test
编译没有问题.
但是执行就会提示,找不到a.so.0.0.0.
这是什么问题?我不是已经走了链接了吗?而且为什么编译没有问题?
也可以使用ld改变你的可执行文件引用so的位置
运行时找的路径不是跟link一样的,运行时路径是LD_LIbrary_PATH环境变量决定的,你也可以添加你自己的其它路径,然后source生效。
看下你的makefile,你的库路径是哪里?是不是用的环境变量。如果用了环境变量,先输出下看看,你的so在不在里面。