我在 Windows 8.1 上使用 64 位 Cygwin 进行一些基本的操作系统开发。我想使用 GRUB 2.00 附带的实用程序(例如 mkrescue 和 mkimage),因为我的内核与 Multiboot 2 兼容并且我正在从 CD 启动。
我在 Cygwin 中编译我需要的所有工具都没有问题,除了GRUB,它会吐出以下错误:
libgrubkern.a(libgrubkern_a-getroot.o):getroot.c:(.text+0x215): undefined reference to `cygwin_conv_to_full_posix_path'
libgrubkern.a(libgrubkern_a-getroot.o):getroot.c:(.text+0x215): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cygwin_conv_to_full_posix_path'
libgrubkern.a(libgrubkern_a-getroot.o):getroot.c:(.text+0x228): undefined reference to `cygwin_conv_to_full_win32_path'
libgrubkern.a(libgrubkern_a-getroot.o):getroot.c:(.text+0x228): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cygwin_conv_to_full_win32_path'
collect2: error: ld returned 1 exit status
Makefile:16816: recipe for target 'grub-mkrelpath.exe' failed
这显然与 Cygwin 在 Windows 和 Posix 样式路径之间的转换有关。有点令人沮丧,因为即使是像 GCC 交叉编译器这样大的东西也可以编译而没有这样的问题。
我已经用谷歌搜索了确切的错误,但没有得到与 GRUB 相关的命中。有人对此有解决方案吗?
亚当