Linux如何查找动态库(编译、运行)

本文详细介绍了GCC在编译、链接及运行时对于动态库的搜索路径顺序。包括-L选项指定路径、环境变量LIBRARY_PATH及默认路径等,并解释了运行时如何通过-Wl,rpath指定搜索路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 编译和链接时,动态库的搜索路径顺序如下(注意不会递归性地在其子目录下搜索):
(1) gcc编译、链接命令中的-L选项;
(2) gcc的环境变量的LIBRARY_PATH(多个路径用冒号分割);
(3) gcc默认动态库目录:/lib:/usr/lib:usr/lib64:/usr/local/lib
  • 运行时,动态库的搜索路径顺序如下:
(1) 编译目标代码时指定的动态库搜索路径:用选项-Wl,rpath和include指定的动态库的搜索路径,比如gcc -Wl,-rpath,include -L. -ldltest hello.c,在执行文件时会搜索路径`./include`;
(2) 环境变量LD_LIBRARY_PATH(多个路径用冒号分割);
(3) 在 /etc/ld.so.conf.d/ 目录下的配置文件指定的动态库绝对路径(通过ldconfig生效,一般是非root用户时使用);
(4) gcc默认动态库目录:/lib:/usr/lib:usr/lib64:/usr/local/lib等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值