openwrt19 把自己的程序刷进固件



在package建立一个文件夹:test_01




这个文件夹中,有一个Makefile,还有一个文件夹src,用来存放c代码


在src文件夹里面,还有一个Makefile


main.c:


#include <stdio.h>

int main() {

    printf("test_01!\n\n");

    return 0;

}


src文件夹里面的Makefile:


OBJECTS = test_01   

                                                                                                           

all : $(OBJECTS)


PKG_NAME=test_01

test_01: main.o 

$(CC) $(LDFLAGS) -std=c99 $^ -o $@


main.o :main.c

$(CC) $(CFLAGS) -std=c99  -c $<


.PHONY:clean


clean:

@-rm *.o  test_01




还有,最外面的Makefile:

include $(TOPDIR)/rules.mk                                                                                                           

PKG_NAME:=test_01

PKG_VERSION:=5.0

PKG_RELEASE:=1


PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)


include $(INCLUDE_DIR)/package.mk


define Package/$(PKG_NAME)  

SECTION:=utils

CATEGORY:=Utilities

TITLE:=test_01  -- a Test Program

MAINTAINER:=even

endef 


define Package/$(PKG_NAME)/description

a test program

endef


define Build/Prepare

mkdir -p $(PKG_BUILD_DIR)

$(CP) ./src/* $(PKG_BUILD_DIR)/

endef


define Package/test_01/install

$(INSTALL_DIR) $(1)/bin

$(INSTALL_BIN) $(PKG_BUILD_DIR)/test_01 $(1)/bin/

endef


$(eval $(call BuildPackage,test_01))





然后,你在openwrt主目录下 make menuconfig,就可以在Utilities的列表里找到test_01了




最后,刷好固件,就可以直接在系统里运行test_01:



友情提示: Makefile缩进需要使用Tab,而不是4个或者8个空格,否则会报错!!!


-----------------------------


最后补充一下,直接在跟目录建立一个”files“文件夹,然后把你想放进去的文件都放进去,就行(比如说/openwrt/files/opt/文件夹里面放你想放的文件)





Comments