(Linux)链接动态库需要注意的路径问题

1.编译(链接)时和运行时,动态库所在的路径应一致,否则运行时提示找不到动态库。
   链接时也需要(隐式或显式地)指定动态库的位置,因为动态库参与了链接过程:在链接时至少需要知道这个库是动态库还是静态库。
2.指定动态库位置的方法:
    1)显式指定动态库位置,在gcc命令中显示指定要链接的动态库的路径,如:
    gcc ****** ./Lib.so
    2)隐式指定动态库位置。通常系统会有一个默认的搜索动态库的路径列表,在/etc/ld.so.conf文件中会有记录。只要指定的动态库存在于这些默认搜索路径中即可,如/lib目录就是一个。在gcc命令中指定某个动态库的方法是使用-l选项:-l库名;对应的动态库的文件名则需是:lib库名.so
3.已经把动态库放在默认搜索路径里,但在运行时却仍可能提示找不到该动态库:
   尚不清楚为什么会出现这个问题,不过有解决方法:
   执行ldconfig命令。
   目前遇到过的一个例子是:
   在64位系统中,把自己做的动态库放在了/lib目录下,提示找不到该动态库。这时执行ldconfig命令,或把动态库放到/lib64命令下,都可以解决问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值