gcc -L选项在链接时指定动态库路径,编译通过,但是执行时会找不到路径;
gcc -Wl -rpath选项在运行时指定路径,运行时按照指定路径寻找动态库;
也就是说处理动态链接库时有2个路径:链接时路径和运行时路径,2个路径是分开的;
如:
gcc -o shared_test shared_test.c -L . -lss -Wl,-rpath=.
下面是别人测试的结果:动态库的搜索路径搜索的先后顺序是:
- 编译目标代码时指定的动态库搜索路径;
- 环境变量 LD_LIBRARY_PATH 指定的动态库搜索路径;
- 配置文件 /etc/ld.so.conf 中指定的动态库搜索路径;
- 默认的动态库搜索路径 /lib ;
- 默认的动态库搜索路径 /usr/lib
https://blog.csdn.net/u012587637/article/details/46832275