OpenWRT编译错误:Package missing dependencies for the following libraries

在尝试在OpenWRT上添加package时遇到编译错误,提示缺少libcrypto.so.1.0.0和libssl.so.1.0.0的依赖。分析发现,该错误源于gen-dependencies.sh脚本生成的依赖检查。解决方法包括在目标package目录添加缺失文件,修改Makefile中DEPEPENDS变量以包含所需文件,或者在Makefile中添加$(Package/$(1)/extra_provides)来指定额外的依赖项。

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

发现问题:

今天在 OpenWRT 上增加了个 package, 编译的时候,报出如下错误:

Package test_modules is missing dependencies for the following libraries:
libcrypto.so.1.0.0
libssl.so.1.0.0

 

分析问题:

在编译目录及最终输出目录都是可以找到这两个文件的,那为什么会出现这个问题呢?

既然有上面的提示,那么就找一下这个提示从哪来吧:

# shujun@server in ~/OpenWRT [16:21:20] [/dev/pts/9]
$ grep -rn "missing dependencies for the following libraries" .
./include/package-ipkg.mk:74:  echo "Package $(1) is missing dependencies for the following libraries:" >&2; \

来看一下这个文件的 74 行:./include/package-ipkg.mk

上面这段脚本的功能是:

  1. 删除 $(1).missing 文件,这个文件存在即代表有不满足的依赖
  2. 调用 ./scripts/gen-dependencies.sh 生成依赖,动作是 gen-dependencies.sh 会扫描 package里面所有的可执行文件,并将这些文件通过 readelf 和 objcopy 命令将它们所需要的依赖库都提取出来,结果是一个个的 so 文件名
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值