以helloworld为例记录使用步骤
一:书写自己的源程序以及Makefile
helloworld.c
#include <stdio.h>int main(int argc, char **argv)
{printf("hello world\r\n");return 0;
}
Makefile
all: helloworldhelloworld: helloworld.o$(CC) -o helloworld helloworld.oclean:rm -rf *.orm -rf helloworldinstall:$(INSTALL) -D -m 0755 helloworld $(TARGET_DIR)/bin
由makefile可以看出生成的可执行程序放在/bin目录下。
二:在package目录下新建app-helloworld目录,里面两个文件app-helloworld.mk ,Config.in
Config.in:
config BR2_PACKAGE_APP_HELLOWORLDbool "helloworld" helperic test demo
#make menuconfig时可以看到配置选项为helloworld
helloworld.mk:
APP_HELLOWORLD_VERSION = 1.0.0
APP_HELLOWORLD_SITE_METHOD:=local
APP_HELLOWORLD_SITE = $(TOPDIR)/../external/app-helloworld
APP_HELLOWORLD_INSTALL_TARGET:=YESdefine APP_HELLOWORLD_BUILD_CMDS$(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
endefdefine APP_HELLOWORLD_INSTALL_TARGET_CMDS$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/bin
endefdefine APP_HELLOWORLD_PERMISSIONS/bin/helloworld f 4755 0 0 - - - - -
endef$(eval $(generic-package))
APP_HELLOWORLD_SITE是源码和Makefile存放的目录。
三 package目录下的Config.in追加如下语句
source "package/app-helloworld/Config.in"
可以看到make menuconfig是可以看到生成的软件包的。
四 最后编译,将生成的根文件系统编译到板子里。
可以看到生成的可执行程序。