Buildroot Quick Start

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(准备代码)
(Overview)
第4行: 第4行:
  
 
<source lang=bash>
 
<source lang=bash>
comcat@jackslab:~/f1c/buildroot-2020.11.2$ ls
+
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
 
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
 
</source>
 
</source>
  
 
<br>
 
<br>
 +
 +
== 添加包 ==
 +
 +
<source lang=bash>
 +
comcat@jackslab:~/buildroot-2020.11.2$ mkdir package/helloworld/
 +
</source>
 +
 +
在该目录下新建 '''Config.in''':
 +
 +
<source lang=bash>
 +
config BR2_PACKAGE_HELLOWORLD
 +
        bool "helloworld"
 +
        help
 +
          hello world package
 +
</source>
 +
 +
新建 helloworld.mk:
 +
 +
<source lang=bash>
 +
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)/rx $(TARGET_DIR)/usr/bin/rx
 +
endef
 +
 +
$(eval $(generic-package))
 +
</source>
  
 
== 准备代码 ==
 
== 准备代码 ==

2021年2月9日 (二) 15:40的版本

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 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)/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 $@ $<


个人工具
名字空间

变换
操作
导航
工具箱