我正在将 a 添加generic-package
到 Buildroot 2019.02.1。该包 (fbi) 包含<asm/page.h>
在 中fbtools.c
,但标头在 中不可用output/target
。编译该包会出现以下错误:
$ make fbi-rebuild
[...]
CC fbi.o
CC fbtools.o
fbtools.c:24:30: fatal error: asm/page.h: No such file or directory
#include <asm/page.h>
^
compilation terminated.
[...]
我已经为 FBI 添加了补丁并选择了必要的软件包:
$ grep -E '^[^#].*(HEADERS|FBI|JPEG)' .config
BR2_KERNEL_HEADERS_VERSION=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
BR2_DEFAULT_KERNEL_HEADERS="4.9.17"
BR2_PACKAGE_LINUX_HEADERS=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y
[...]
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST="4.9"
BR2_PACKAGE_FBI=y
BR2_PACKAGE_JPEG=y
BR2_PACKAGE_JPEG_SIMD_SUPPORT=y
BR2_PACKAGE_LIBJPEG=y
BR2_PACKAGE_HAS_JPEG=y
BR2_PACKAGE_PROVIDES_JPEG="libjpeg"
$ for i in `ls package/fbi/000*`; do echo $i; cat $i | grep -E '^[-+][^-+]'; done
package/fbi/0001-fix-verion.patch
- fprintf(stderr, "fbi version " VERSION
+ fprintf(stderr, "fbi version 1.32 "
package/fbi/0002-fix-makefile.patch
- @echo -e "$(make-config-q)" > $@
+ @echo "$(make-config-q)" > $@
$ find output/ -name page.h
output/build/linux-headers-4.9.17/fs/nilfs2/page.h
output/build/linux-headers-4.9.17/include/asm-generic/page.h
[...]
output/build/linux-headers-4.9.17/arch/score/include/asm/page.h
我使用的内核(也是 4.9.17)不是 Buildroot 的一部分,但我认为这应该不是问题。
在 Buildroot 中针对内核头进行编译的正确方法是什么?
答案1
如果不将标头集成到根文件系统中,似乎不可能针对标头进行编译。我尝试从 Buildroot 树中编译 fbi,但这需要花费太多精力。
我正在尝试fbv
而不是联邦调查局,因为它已经在 Buildroot 中了。