我正在基于attitude_adjustment为TP-Link WDR4300创建自定义程序包 我正在使用我的包中的其他包(libnetfilter队列)中的函数。
汇编很顺利。但在链接阶段构建崩溃。显然链接器无法找到这些引用。
我已经定义了" DEPENDS:= + libnetfilter_queue"在packages目录中的Makefile中。建立仍然崩溃
我不清楚如何定义依赖关系
Makefile(src目录)中需要进行哪些修改。
我当前的Makefile(src目录)非常简单。它看起来像这样。
CFLAGS = -Wall
OBJS = main.o
全部:smartAP
%。o:%。c
$(CC)$(CFLAGS)-c -o $ @ $<
smartAP:$(OBJS)
$(CC)-o $ @ $(OBJS)
清洁:
rm -f smartAP * .o
请告诉我如何在其他软件包中包含依赖项,以便构建完成。
yegorich的解决方案解决了我的构建问题。但是现在构建再次因包丢失而崩溃 构建日志:
install -d -m0755 /home/devnet/openwrt/attitude_adjustment/build_dir/target-mips_r2_uClibc-0.9.33.2/smartAP/ipkg-ar71xx/smartAP/usr/sbin
install -m0755 /home/devnet/openwrt/attitude_adjustment/build_dir/target-mips_r2_uClibc-0.9.33.2/smartAP/smartAP/home/devnet/openwrt/attitude_adjustment/build_dir/target-mips_r2_uClibc-0.9.33.2/smartAP/ipkg -ar71xx / smartAP / usr / sbin目录/
查找/home/devnet/openwrt/attitude_adjustment/build_dir/target-mips_r2_uClibc-0.9.33.2/smartAP/ipkg-ar71xx/smartAP -name' CVS' -o -name' .svn' -o -name'。#' -o -name' 〜' | xargs -r rm -rf
软件包smartAP缺少以下库的依赖项: libnetfilter_queue.so.1
我已经在Package Makefile中提到了对libnetfilter_queue的依赖。
include $(INCLUDE_DIR)/package.mk
define Package/smartAP
SECTION:=net
CATEGORY:=Network
DEPENDS:=+libnetfilter_queue
TITLE:=Smart Wireless Access Point
endef
我应该在其他地方提到依赖吗?
答案 0 :(得分:1)
"DEPENDS:=+libnetfilter_queue"
告诉构建系统在您的包之前构建libnetfilter_queue
。您仍然需要在软件Makefile
中定义链接器标志。类似的东西:
LDFLAGS = -lnetfilter_queue
有关编写Makefile和链接库的更多信息,请参阅此tutorial。