MT7688自制软件包

REFERENCES:
(94条消息) MT7688学习笔记(3)——定制OpenWrt系统及添加自开发软件_Leung_ManWah的博客-CSDN博客
(94条消息) 从mk文件深度剖析OpenWrt软件编译构建系统、并手把手教学构建自己的系统软件_董哥的黑板报的博客-CSDN博客_buildpackage openwrt
(96条消息) Openwrt编译错误:Package xxx is missing dependencies for the following libraries_半砖的博客-CSDN博客
OpenWRT编译错误:Package missing dependencies for the following libraries | 码农家园 (codenong.com)
(96条消息) OpenWRT编译错误:Package missing dependencies for the following libraries_shujun20369的博客-CSDN博客_package baresip is missing dependencies for the fo

遇见的问题:

Package myTest is missing dependences for the following libraries:

libc.so.2

libcjson.so.1

软件结构如下图所示:主要问题定位在./src/Makefile中

  • 缺少libc.so.2的问题

在于Makfile中直接使用了g++或gcc进行编译,在OpenWRT中,使用Make V=99进行软件包编译时是使用的交叉编译,会导致出现问题。

解决方法:使用

CC=g++

ALL:
$(CC) hello.c -o hello
  • 缺少libcjson.so.1的问题

可以进入./src自己尝试使用make进行定位

问题可能原因

1. 使用的本机的 -L -I,没有使用OpenWRT的静态库地址,OpenWRT静态库在$(TOPDIR)/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/lib/中,头文件在$(TOPDIR)/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include/中。

例如

CFLAG += -I$(TOPDIR)/staging_dir/target-mipsel_24kc_musl/usr/include/
CFLAG += -I$(TOPDIR)/staging_dir/target-mipsel_24kc_musl/usr/include/cjson/
  • openwrt-21.02/build_dir/target-mipsel_24kc_musl/hello中提示无可执行文件

问题原因:Makefile没有正确生成可执行文件,需要修改里层Makefile

我这边的问题在于

外层Makefile中Compile是如此定义

define Build/Compile
    $(MAKE) -C $(PKG_BUILD_DIR) \
        $(TARGET_CONFIGURE_OPTS) \
        CFLAGS="$(TARGET_CFLAGS)" \
        CPPFLAGS="$(TARGET_CPPFLAGS)"\ 
        LDFLAGS="$(TARGET_LDFLAGS)"
endef

里层Makfile若使用CFLAGS,会导致编译不成功,怀疑可能是本身的bug,修改CFLAGS为CFLAG或其他变量名即可解决

CFLAGS = -I$(TOPDIR)/staging_dir/target-mipsel_24kc_musl/usr/include/modbus
  • Package hello is missing dependencies for the following libraries: libcjson

问题解决:注意DEPENDS:=的书写,该库必须名字和make menuconfig中的库名字完全一致,例如cJSON库一定不能写成libcjson。

打包方式中的依赖和写Makefile的-l依赖不一样,切记注意

define Package/$(PKG_NAME)
    DEPENDS:=+cJSON
endef
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值