以helloworld为例记录使用步骤
一:书写自己的源程序以及Makefile
helloworld.c
#include <stdio.h>
int main(int argc, char **argv)
{
printf("hello world\r\n");
return 0;
}
Makefile
all: helloworld
helloworld: helloworld.o
$(CC) -o helloworld helloworld.o
clean:
rm -rf *.o
rm -rf helloworld
install:
$(INSTALL) -D -m 0755 helloworld $(TARGET_DIR)/bin
由makefile可以看出生成的可执行程序放在/bin目录下。
二:在package目录下新建app-helloworld目录,里面两个文件app-helloworld.mk ,Config.in
Config.in:
config BR2_PACKAGE_APP_HELLOWORLD
bool "helloworld"
help
eric 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:=YES
define APP_HELLOWORLD_BUILD_CMDS
$(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
endef
define APP_HELLOWORLD_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/bin
endef
define 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是可以看到生成的软件包的。
四 最后编译,将生成的根文件系统编译到板子里。
可以看到生成的可执行程序。