3

这是在我的 Makefile.core.def: ... ... module = { name = mymod; 共同=净/mymod.c;}; ……

当我尝试构建时,我得到: mv syminfo.lst.new syminfo.lst cat syminfo.lst | 排序 | gawk -f /build/boot_project/src/grub/grub2/grub-core/genmoddep.awk > moddep.lst || (rm -f moddep.lst; 退出 1) mymod 中的 grub_efi_get_variable 未定义 make[5]: *** [moddep.lst] 错误 1

mymod.c has "#include <grub/efi/efi.h>" and tries to use "grub_efi_get_variable" function.  I see that in syminfo.lst
> more syminfo.lst
...
undefined mymod grub_efi_get_variable
...

有人可以阐明错误以及如何解决吗?

谢谢,

PS 我在 /build/boot_project/src/grub/grub2/grub-core/ 中编辑了 Makefile.core.def 和 Makefile.core.am 以包含我的模块并在 /build/boot_project/src/grub/ 中运行 autogen.sh 到重新生成 Makefile.in,然后我在 /build/boot_project/src/grub/ 中运行 dmake

4

1 回答 1

1

使用 --with-platform=efi 运行配置。无论如何,我注意到 Makefile.core.am 为模块 mymod 启用了所有平台。所以我将 Makefile.core.def 编辑为: module = { name = mymod; 共同=净/mymod.c;启用 = efi}; 重新运行 autogen.sh 后,只有具有 efi 的平台被添加到 Makefile.core.am 并且构建工作正常。

于 2014-10-31T18:02:42.760 回答