权限被拒绝Hello world Yocto / Openembedded

时间:2017-04-12 09:32:00

标签: c cross-compiling yocto openembedded

我想与Yocto交叉编译一个来自Toradex的Colibri iMX7的简单C Hello World。 我的meta-hellow的树如下:

 meta-hellow
 ├── conf
 │   └── layer.conf
 └── recipes-myhello
     └── files
         └── helloworld.c
         └── README.TXT
     └── myhello_0.0.bb

helloworld.c

#include <stdio.h>

int main(int argc, char** argv)
{
        printf("Hello World!\n");
        return 0;
}
来自this one

myhello_0.0.bb

DESCRIPTION = "Hello world program"
#To prevent the LICENSE field not set error
LICENSE = "CLOSED" 
PR = "r0"

SRC_URI = "file://helloworld.c \
           file://README.txt"

do_compile() {
        ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/helloworld.c -o helloworld
}

do_install() {
        install -m 0755 -d ${D}${bindir} ${D}${docdir}/helloworld
        install -m 0644 ${S}/helloworld ${D}${bindir}
        install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/helloworld
}

我已经在我的bblayers.conf中添加了我的图层${TOPDIR}/../layers/meta-hellow \,并在local.conf中添加了包,就像IMAGE_INSTALL_append = "myhello"一样。

但是我用opkg install在我的主板上安装后的问题如下:

root@colibri-imx7:~# myhello
-sh: /usr/bin/myhello: Permission denied

为什么有Permission denied因为我是根?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

install -m 0644 ${S}/helloworld ${D}${bindir}

您告诉安装没有为任何人设置执行权限:请尝试“0755”。