openwrt 的依赖找不到问题

Openwrt报告库找不到
Package * is missing dependencies for the following libraries:
libc.so.6 或其他
先检查系统里面有没有这个库存在,如果没有,安装 (在/lib /lib64 等目录找)
之后添加库openwrt的编译环境
修改 libc.provides 平台不同,可能目录不同,find ./stagging_dir -name libc.provides 下
一般在 stagging_dir/target-mipsel_r2_uClibc-0.9.33.2/pkginfo/libc.provides
底部添加
libc.so.6
或其他需要的库,编译时候会把这个so转为openwrt平台的库
最后在对应的openwrt 的Makefile中加依赖

要是不行的话,使用使用在

define Package/sc/install 中增加

$(CP) /your lib.so $(1)/usr/bin/

也可以...

openwrt 的Makefile 示例

include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk #你的包名 PKG_NAME:=sc PKG_RELEASE:=1 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk #包信息 define Package/sc #下面两个编译时候编译界面上用到的分类 SECTION:=utils CATEGORY:=Utilities TITLE:=certain information sc customer #这加依赖库 DEPENDS:=+libpthread +libpcap endef define Package/sc/description #包介绍 If you can't figure out what this program does, you're probably brain-dead and need immediate medical attention. endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/ endef #包安装执行 define Package/sc/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/sc $(1)/usr/bin/ endef $(eval $(call BuildPackage,sc))

一般写到的代码放置到/your openwrt source/package/中

建立一个目录,如sc,目录结构如下:

package/sc

package/sc/Makefile (上面那个文件)

package/sc/src/your.c

package/sc/src/Makefile

package/sc/src/....#其他文件

之后运行 sudo make menuconfig 找到你的软件包 找的方式是:define Package/sc 里面 SECTION 和CATEGORY 的定义

注意:你的Makefile中,千万不要使用gcc 要使用$(CC),否则编译出来用不了的..

Makefile如下示例: 

sc:sc.o $(CC) sc.o -o sc -lpthread -lpcap sc.o:sc.c sc.h $(CC) -c sc.c clean: rm -rf *.o sc

前面是TAB减,非空格...$(CC)千万不能使用gcc代替...

转载于:https://www.cnblogs.com/liushannet/p/3895092.html

你可能感兴趣的:(openwrt 的依赖找不到问题)