动态库(编译时和运行时)

使用动态库是有两种情况:编译时和运行时

 

1. 编译时——链接动态库

    以net-snmp库为例,编译时用到-lnetsnmp

    编译器默认搜索的路径是:/lib和/usr/lib

    如果用户自己指定路径,则用-L/usr/local/net-snmp/lib

 

2. 运行时——加载动态库

    有3中方法指定动态库路径:

    (1) 设置$LD_LIBRARY_PATH=库所在目录(多个目录用:分隔),系统加载工具ld.so/ld-linux.so将顺序搜索变量指定的目录。例如#$LD_LIBRARY_PATH=/usr/local/net-snmp/lib

    (2) 以root身份把库路径加入/etc/ld.so.conf或在/etc/ld.so.conf.d中创建特定的.conf文件,然后运行ldconfig更新/etc/ld.so.cache。例如:在/etc/ld.so.conf.d下创建文件mysql.conf写入/usr/local/net-snmp/lib

     或者直接

    #echo /usr/local/net-snmp/lib >> ld.so.conf

    #ldconfig

    (3) 把需要的库copy到/usr/lib或/lib,但这不是建议的方法,特别是尽量避免copy发到/lib。但这种方法可以在编译时免去-L选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值