我正在尝试将自己的程序添加到使用 Buildroot 创建的小型 linux 中。到目前为止我所做的:
我在“buildroot/package/”中创建了一个名为“HelloWorld”的新目录。在 'buildroot/package/HelloWorld' 我有:一个 Config.in、HelloWorld.mk 和 HelloWorld 目录。 Config.in持有这个:
config BR2_PACKAGE_HELLOWORLD bool "helloworld" default y help Hello world component.
HelloWorld.mk 持有这个:
HELLOWORLD_VERSION:= 1.0.0
HELLOWORLD_SITE:= /home/userpc/Downloads/helloworld/
HELLOWORLD_SITE_METHOD:=local
HELLOWORLD_INSTALL_TARGET:=YES
define HELLOWORLD_BUILD_CMDS
$(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
endef
define HELLOWORLD_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/bin
endef
define HELLOWORLD_PERMISSIONS
/bin/helloworld f 4755 0 0 - - - - -
endef
$(eval $(generic-package))
(灵感来源) HelloWorld 目录包含:main.c & Makefile:
主.c:
#include <stdio.h>
int main()
{
printf("\nMain entry.\n");
return 0;
}
生成文件:
CC=gcc
CFLAGS=-I.
all: *.c
$(CC) -Os -Wall *.c -o helloworld
# $(STRIP) helloworld
clean:
rm -f a.out helloworld
rm -f *.o
编辑:而且我还添加了源“package/HelloWorld/Config.in”到“package/Config.in”但是当我挂载我的 rootfs.ext2 分区时,我在 /usr/bin 中找不到我的 HelloWorld 可执行文件......,我对此真的很陌生,没有任何先验知识,所以请你向我解释一下,我错过了什么,因为我确定我做错了什么。
更新:该程序在所需位置构建和安装,但是当我尝试像这样运行它时:./helloworld
,我得到:bash: ./helloworld: No such file or directory
它具有执行权限。它有什么问题?(我将rootfs.ext2挂载到ubuntu目录后尝试运行它,buildroot的目标arch是i386,所以应该没问题,对吧?)
在构建和安装 HelloWorld 程序并最终运行它之后,我想添加到 init.d 以便它在启动后启动,并将 HelloWorld 替换为不需要 X 服务器的 Qt Window,就像这里的东西.
灵感的主要来源在这里。