如何在包含目录yocto中安装文件
How to install file in include directory yocto
我正在尝试安装从 tar 文件中提取的文件,但我的文件没有安装在 target board 上的 usr/include 目录下,但我看到我的文件处于临时状态/work/aarch64/recipedir/image/usr/include/mydir/ 和 include/myfile.h。构建时我没有遇到任何错误。
do_install() {
install -d ${D}${includedir}
mkdir -p ${D}${includedir}/mydir
install -m 0644 ${S}/include/myfile.h ${D}${includedir}
install -m 0644 ${S}/include/mydir/*.h ${D}${includedir}/mydir/
}
FILES_${PN} += "${includedir}/mydir
默认情况下 ${includedir}
中的所有内容都放入 ${PN}-dev
。
c.f.: https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/bitbake.conf#n316
你要记住一个文件只能在一个包里。要确定文件将在哪个包中生成,非常简单。从 PACKAGES
中最左边的包开始,文件与 FILES_<pkg>
中任何路径匹配的第一个包将包含文件。
默认情况下,${PN}-dev
出现在 PACKAGES
中的 ${PN}
之前。
c.f.: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/bitbake.conf#n294
您可以通过 运行 oe-pkgdata-util find-path '/usr/include/mydir'
.
检查哪个包中有您的文件,而无需对整个文件进行“逆向工程”
如果你真的想在你的系统中使用这个头文件(为什么?),你可以将 ${PN}-dev
添加到你的映像中或修改一些东西(从 PACKAGES
中删除 -dev 包或移动 ${PN}
在 ${PN}-dev
之前,如果你在 ${includedir}
中只有一个文件,等等)。
我正在尝试安装从 tar 文件中提取的文件,但我的文件没有安装在 target board 上的 usr/include 目录下,但我看到我的文件处于临时状态/work/aarch64/recipedir/image/usr/include/mydir/ 和 include/myfile.h。构建时我没有遇到任何错误。
do_install() {
install -d ${D}${includedir}
mkdir -p ${D}${includedir}/mydir
install -m 0644 ${S}/include/myfile.h ${D}${includedir}
install -m 0644 ${S}/include/mydir/*.h ${D}${includedir}/mydir/
}
FILES_${PN} += "${includedir}/mydir
默认情况下 ${includedir}
中的所有内容都放入 ${PN}-dev
。
c.f.: https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/bitbake.conf#n316
你要记住一个文件只能在一个包里。要确定文件将在哪个包中生成,非常简单。从 PACKAGES
中最左边的包开始,文件与 FILES_<pkg>
中任何路径匹配的第一个包将包含文件。
默认情况下,${PN}-dev
出现在 PACKAGES
中的 ${PN}
之前。
c.f.: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/bitbake.conf#n294
您可以通过 运行 oe-pkgdata-util find-path '/usr/include/mydir'
.
如果你真的想在你的系统中使用这个头文件(为什么?),你可以将 ${PN}-dev
添加到你的映像中或修改一些东西(从 PACKAGES
中删除 -dev 包或移动 ${PN}
在 ${PN}-dev
之前,如果你在 ${includedir}
中只有一个文件,等等)。