Buildroot Quick Start
来自Jack's Lab
(版本间的差异)
(→添加包) |
(→添加包) |
||
| 第39行: | 第39行: | ||
define HELLOWORLD_INSTALL_TARGET_CMDS | define HELLOWORLD_INSTALL_TARGET_CMDS | ||
$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin/helloworld | $(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin/helloworld | ||
| + | #$(INSTALL) -D -m 0755 $(@D)/helloworld-init $(TARGET_DIR)/etc/init.d/S90helloworld | ||
#$(INSTALL) -D -m 0755 $(@D)/rx $(TARGET_DIR)/usr/bin/rx | #$(INSTALL) -D -m 0755 $(@D)/rx $(TARGET_DIR)/usr/bin/rx | ||
endef | endef | ||
2021年2月9日 (二) 15:41的版本
1 Overview
目录结构:
comcat@jackslab:~/buildroot-2020.11.2$ ls arch board boot CHANGES Config.in Config.in.legacy configs COPYING DEVELOPERS dl docs fs linux Makefile Makefile.legacy output package README support system toolchain utils
2 添加包
comcat@jackslab:~/buildroot-2020.11.2$ mkdir -p package/helloworld/
在该目录下新建 Config.in:
config BR2_PACKAGE_HELLOWORLD
bool "helloworld"
help
hello world package
新建 helloworld.mk:
comcat@lab:~/buildroot-2020.11.2$ cat package/helloworld/helloworld.mk
HELLOWORLD_VERSION = 1.0.0
HELLOWORLD_SITE = $(TOPDIR)/../helloworld_src
HELLOWORLD_SITE_METHOD = local
define HELLOWORLD_BUILD_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
endef
define HELLOWORLD_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin/helloworld
#$(INSTALL) -D -m 0755 $(@D)/helloworld-init $(TARGET_DIR)/etc/init.d/S90helloworld
#$(INSTALL) -D -m 0755 $(@D)/rx $(TARGET_DIR)/usr/bin/rx
endef
$(eval $(generic-package))
3 准备代码
$ mkdir ~/helloworld_src
放入 helloworld.c Makefile:
helloworld.c:
#include <stdio.h>
#include <unistd.h>
int main(int argc, int *argv[])
{
while(1)
{
printf("Hello world\n");
sleep(1);
}
return 0;
}
Makefile:
OBJS=helloworld.o all: helloworld helloworld: $(OBJS) $(CC) $(LDFLAGS) -o helloworld $(OBJS) $(OBJS): %.o: %.c $(CC) $(CFLAGS) -c -o $@ $<