【发布时间】:2014-12-24 15:20:40
【问题描述】:
这是在我的 Makefile.core.def 中: ... ... 模块 = { 名称 = mymod; 共同=净/mymod.c; }; ... ...
当我尝试构建时,我得到: mv syminfo.lst.new syminfo.lst 猫 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/ 中运行 autogen.sh grub/ 重新生成 Makefile.in,然后我在 /build/boot_project/src/grub/ 中运行 dmake
【问题讨论】:
-
您要为什么平台构建,如何配置它?
-
我正在使用在 x86 系统上运行的 Solaris。我修改了 grub2.core.def 和 grub2.core.am 并构建。我没有运行任何额外的配置。
-
这些是实际的文件名吗?我什至没有在谷歌上得到任何点击。你如何在没有任何配置的情况下构建它?源代码来自哪里?您能否编辑问题并添加您运行的实际命令?
-
是的,这些是实际的文件名,来源来自 grub 源代码树(旧树)。最新的来源可以在git.savannah.gnu.org/gitweb/… 找到。我在我的问题中添加了更多信息。
-
那是非常老的源代码。你有什么理由不能使用现代代码吗?但鉴于此,我的猜测是您不是为 EFI 平台构建的。尝试使用 --with-platform=efi 运行配置。