参照https://blog.youkuaiyun.com/a_tu_/article/details/51509474
工程文件package 目录下,新建目录文件test。在test文件夹下新建src目录文件,和Makefile 文件。
该makefile文件内容如下:
include $(TOPDIR)/rules.mk
PKG_NAME:=test
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/test
SECTION:=utils
CATEGORY:=Base system
TITLE:=Userspace test
DEPENDS:=@TARGET_ar71xx
endef
define Package/test/description
This package contains an utility to manipulate NVRAM on Broadcom based devices.
It works on bcm47xx (Linux 2.6) without using the kernel api.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Configure
endef
define Package/test/install
$(INSTALL_DIR) $(1)/$(PKG_BIN_DIR) #没有此句不会编译
endef
$(eval $(call BuildPackage,test))
进入src目录文件,新建一个test.c 文件,内容如下:
#include <stdio.h>
int main(void)
{
printf("hello openwrt!!!\n");
return 0;
}
再新建一个Makefile文件,内容如下:
SRC:=test.c
test: $(SRC)
#$(cc) $(SRC) -o test
$(CC) -o test $(SRC)
# remove object files and executable when user executes "make clean"
clean:
rm *.o
然后,切换到该sdk根目录下,编译整个sdk:make V=99
编译完成后,在 /openwrt/build/build_dir/target-mips_r2_uClibc-0.9.33.2/test 目录下有编译好的test文件,利用scp命令发送到机器中运行。
也可以编译单个模块test,方法:切换到sdk根目录,运行make menuconfig命令,选择base system->test 选中后按 “y”键,退出,保存配置。再执行make package/test/compile V=99 命令。