openwrt生成apk

2018-11-22  本文已影响0人  嵌入式工作

在建立文件夹和文件

cd package/utils/
mkdir hello_world
cd hello_world
mkdir src
vim src/hello_world

编辑hello_world.c

#include <stdio.h>

int main(char argc ,char *argv[])
{
    int i=1;
    while(1)
    {
        printf("hello world!!!!!%d\r\n",i++);
        if(i>10)
        {
            i=1;
        }
        sleep(1);
        
        
    }
    return 0;
    
}

在src下面编辑Makefile , vim Makefile

all:hello_world
hello:hello_world.o
        $(CC) $(LDFLAGS) hello_world.o -o hello_world
hello_world.o:hello_world.c
        $(CC) $(LDFLAGS) -c hello_world.c

clean:
        rm *.o hello_world  
~                             

返回hello_world目录下,编辑Makefile


PKG_NAME:=hello_world
PKG_VERSION:=1.0
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

include $(INCLUDE_DIR)/package.mk
define Package/hello_world
        SECTION:=base
        CATEGORY:=Utilities
        TITLE:=Hello world -prints a hello world message
endef

define Package/hello_world/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/hello_world/install
        $(INSTALL_DIR) $(1)/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/hello_world $(1)/bin/
endef

$(eval $(call BuildPackage,hello_world))

回到顶层目录

make menuconfig
并选择我们已经加进去的安装包。
Utilities --->
<M> hello_world.................... Hello world -prints a hello world message
保存退出。
make V=s
等待编译完成后,我们就可以在以下路径找到生成的安装包
“openwrt/ bin/ramips/packages/base/hello_world_1.0_ramips_24kec.ipk”

安装此安装包后
opkg install openwrt/ bin/ramips/packages/base/hello_world_1.0_ramips_24kec.ipk”
直接在串口终端输入:
hello_world

上一篇下一篇

猜你喜欢

热点阅读