我在手册中创建了一个新的食谱“ helloworld”示例。 我正在使用imx6sx处理器,因此在meta-freescale-3rdparty文件夹中将其创建为recipes-helloword,并检查此层是否已添加到bblayer.conf中。可以使用bitbake helloworld进行编译,没有错误,并且它存在于rpm文件夹中。之后,该图像再次使用bitbake fsl-image-qt5-validation-imx进行编译,并生成了一个新的rootfs和sdcard文件。
但是,我在rootfs中找不到该应用程序。 rootfs中的应用程序在哪里? (该食谱已插入local.conf中:IMAGE_INSTALL_append =“ helloworld”)
。
./recipes-helloworld/
└── helloworld
├── helloworld
│ ├── COPYING
│ └── helloworld.c
└── helloworld_0.0.bb
2 directories, 3 files
helloworld_0.0.bb
SUMMARY = "Hello World Cpp App Sources"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PV = "1.5"
TARGET_CC_ARCH += "${LDFLAGS}"
SRC_URI = "file://helloworld.c"
S= "${WORKDIR}"
do_compile() {
${CC} helloworld.c -o helloworld
}
do_install() {
install -d ${D}${bindir}
install -m 0755 helloworld ${D}${bindir}
}
答案 0 :(得分:0)
您能否检查图像的构建清单以查看helloworld是否在其中:
{build_folder}/tmp/deploy/licenses/{image_name + last_timestamp}/package.manifest
如果在那里,您应该在/usr/bin/helloworld
中找到helloworld
如果不是,则说明helloworld软件包未包含在图像中。
答案 1 :(得分:0)
可以检查“ helloword”程序包中的“ helloword”应用程序吗?表示它已构建并放在/ usr / bin中。如果它在映像目录中可用,则表示此二进制文件已作为helloword软件包的一部分安装到rootfs中。
(build_dir)/tmp/work/***/hello word/***/image/usr/bin
如果可用,则表示正在构建helloword软件包并创建二进制文件,并将其安装在/ usr / bin中并计划放入rootfs。
由于您已经将包作为IMAGE_INSTALL_append添加在local.conf中,因此应将其构建为目标的一部分。
如果仍然无法使用,请在食谱中添加以下行
FILES _ $ {PN} + =“ $ {bindir} / helloword”
然后尝试重建'helloword'和最终的traget,并检查rootfs中是否提供了二进制文件。