编译平台:CentOS Stream 9
源码包:grub2-2.06-94.el9.src.rpm
我将源码包rpm -ivh grub2-2.06-94.el9.src.rpm,通过rpmbuild -bp grub2_2.06.spec命令,打补丁后。
进入BUILD/grub-2.06目录,进行手工编译时报错,错误信息为找不到系统的头文件。
我的编译配置如下:
cd grub-2.06
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--with-platform=efi \
--with-gnu-efi \
--disable-efiemu \
--disable-multilib \
--disable-werror \
--enable-uefi-secure-boot \
--enable-largefile \
--enable-grub-mount \
--datarootdir=/usr/share \
--with-bootdir=/boot
make
make install
报错信息:
compilation terminated.
In file included from ./include/grub/misc.h:27,
from ./include/grub/disk.h:31,
from grub-core/fs/proc.c:20:
./include/grub/i18n.h:32:12: fatal error: locale.h: No such file or directory
32 |# include <locale.h>
| ^~~~~~~~~~
compilation terminated.
In file included from ./include/grub/misc.h:27,
from ./include/grub/dl.h:29,
from ./include/grub/partition.h:22,
from ./include/grub/fs.h:30,
from ./include/grub/archelp.h:23,
from grub-core/fs/archelp.c:19:
./include/grub/i18n.h:32:12: fatal error: locale.h: No such file or directory
32 | # include <locale.h>
| ^~~~~~~~~~
compilation terminated.
In file included from ./include/grub/misc.h:27,
from grub-core/kern/backtrace.c:19:
./include/grub/i18n.h:32:12: fatal error: locale.h: No such file or directory
32 | # include <locale.h>
| ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:17275: libgrub.pp] Error 1