无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
查看: 1230|回复: 13
打印 上一主题 下一主题

[求助] grub4dos for uefi 编译环境搭建出错

[复制链接]
跳转到指定楼层
1#
发表于 2021-3-26 23:38:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,尝试编译 grub4dos for uefi 时报如下错误


  1. checking for .code16 addr64 assembler support... no
  2. configure: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils
复制代码

在32位的uabntu16.04和64位的uabntu18.04上均进行了尝试,出现相同问题。
16.04中gcc版本gcc version 5.4.0 20160609
18.04中gcc版本gcc version 7.5.0
gcc-multilib也都装了。
非uefi版的grub4dos编译倒是没有问题。实在是费解。特此求教。感谢。
2#
发表于 2021-3-27 08:02:56 来自手机 | 只看该作者
目前是使用gcc 4.8版本编译的。
回复

使用道具 举报

3#
发表于 2021-3-27 09:08:50 | 只看该作者
本帖最后由 caocaofff 于 2021-3-27 10:13 编辑

我专门写了篇如何搭建G4D的编译环境的文章:
https://pecmd.net/thread-133.htm

点评

我尝试着用这个说明文档做了个编译环境,在这个环境上编译g4d for UEFI 的时候问题依旧。 我试着装了所有我能想到的支持包,但是就是阴魂不散的。 有点崩溃。只能厚着脸皮再来求助。  详情 回复 发表于 2021-3-29 16:09
回复

使用道具 举报

4#
发表于 2021-3-27 10:01:30 | 只看该作者
本帖最后由 2011yaya2007777 于 2021-3-27 10:19 编辑

@ caocaofff
很好,有利于搭建编译环境。建议使用 gcc 4.8 版本,否则 grub4dos for UEFI 有可能编译通不过。(没有亲自验证,只是有人反馈,不知你那里是否可以编译,并正常使用?)

另外请教个问题,ubuntu-14.04.6-server-amd64.iso 只能安装在单独的 ext2/3/4 分区吗?有没有可以安装在 Windows 任意分区的?
每次编译都需要执行 ./configure 吗?

点评

./configure只需执行一次,make可以添加-j4这种参数使用多线程,后面的数字是CPU支持的线程数  详情 回复 发表于 2021-3-29 17:35
传统的工作方式是:安装虚拟机、安装双系统。 但是,目前微软的Windows 10支持了WSL,所以我们可以利用这个特性,直接在Windows里安装Linux子系统,不用来回切换环境,工作效率非常高。  详情 回复 发表于 2021-3-29 17:31
回复

使用道具 举报

5#
 楼主| 发表于 2021-3-29 16:09:42 | 只看该作者
本帖最后由 fmwqsn 于 2021-3-29 16:10 编辑
caocaofff 发表于 2021-3-27 09:08
我专门写了篇如何搭建G4D的编译环境的文章:
https://pecmd.net/thread-133.htm

我尝试着用这个说明文档做了个编译环境,在这个环境上编译g4d for UEFI 的时候问题依旧。
我试着装了所有我能想到的支持包,但是就是阴魂不散的。
有点崩溃。只能厚着脸皮再来求助。


这个和机器的处理器支持有关系么?

点评

按4楼所说,你可以将版本号由4.6改为4.8再测试。我写的教程适用于Grub4Dos Legacy编译  详情 回复 发表于 2021-3-29 17:29
回复

使用道具 举报

6#
发表于 2021-3-29 17:29:04 | 只看该作者
fmwqsn 发表于 2021-3-29 16:09
我尝试着用这个说明文档做了个编译环境,在这个环境上编译g4d for UEFI 的时候问题依旧。
我试着装了所 ...

按4楼所说,你可以将版本号由4.6改为4.8再测试。我写的教程适用于Grub4Dos Legacy编译
回复

使用道具 举报

7#
发表于 2021-3-29 17:31:55 | 只看该作者
2011yaya2007777 发表于 2021-3-27 10:01
@ caocaofff
很好,有利于搭建编译环境。建议使用 gcc 4.8 版本,否则 grub4dos for UEFI 有可能编译通不 ...

传统的工作方式是:安装虚拟机、安装双系统。
但是,目前微软的Windows 10支持了WSL,所以我们可以利用这个特性,直接在Windows里安装Linux子系统,不用来回切换环境,工作效率非常高。
回复

使用道具 举报

8#
发表于 2021-3-29 17:35:00 | 只看该作者
2011yaya2007777 发表于 2021-3-27 10:01
@ caocaofff
很好,有利于搭建编译环境。建议使用 gcc 4.8 版本,否则 grub4dos for UEFI 有可能编译通不 ...

./configure只需执行一次,make可以添加-j4这种参数使用多线程,后面的数字是CPU支持的线程数
回复

使用道具 举报

9#
发表于 2021-3-29 20:57:49 | 只看该作者
经测试,在WSL2环境下Ubuntu1804可以顺利make,只需要将我的教程里的命令把版本号换成4.8即可,apt源不需要更换

点评

心态略崩。 g4d for UEFI 跟我有仇。。  详情 回复 发表于 2021-3-31 14:30
回复

使用道具 举报

10#
 楼主| 发表于 2021-3-31 14:30:35 | 只看该作者
caocaofff 发表于 2021-3-29 20:57
经测试,在WSL2环境下Ubuntu1804可以顺利make,只需要将我的教程里的命令把版本号换成4.8即可,apt源不需要 ...

心态略崩。
  1. checking if C symbols get an underscore after compilation... no
  2. checking whether objcopy works for absolute addresses... yes
  3. checking whether addr32 must be in the same line as the instruction... yes
  4. checking for .code16 addr64 assembler support... no
  5. configure: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils
  6. root@ubuntu:/home/user/grub4dos-for_UEFI# gcc -v
  7. Using built-in specs.
  8. COLLECT_GCC=gcc
  9. COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
  10. Target: x86_64-linux-gnu
  11. Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.5-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
  12. Thread model: posix
  13. gcc version 4.8.5 (Ubuntu 4.8.5-4ubuntu8)
复制代码

g4d for UEFI 跟我有仇。。

点评

你可以按我给的bash脚本走一遍,每行单独复制出来执行  详情 回复 发表于 2021-3-31 19:46
回复

使用道具 举报

11#
发表于 2021-3-31 19:46:13 | 只看该作者
fmwqsn 发表于 2021-3-31 14:30
心态略崩。

g4d for UEFI 跟我有仇。。

你可以按我给的bash脚本走一遍,每行单独复制出来执行

点评

我这两天试了我能弄到的所有ubantu版本……也尝试了各种编译姿势。。 也确确实实是用您提供的脚本一步一步的安装,然鹅,全都是一样的问题。 现在唯一可能的区别也许就是我都是在虚拟机上弄得? 非UEFI版的编译都  详情 回复 发表于 2021-4-2 16:15
回复

使用道具 举报

12#
 楼主| 发表于 2021-4-2 16:15:16 | 只看该作者
caocaofff 发表于 2021-3-31 19:46
你可以按我给的bash脚本走一遍,每行单独复制出来执行

我这两天试了我能弄到的所有ubantu版本……也尝试了各种编译姿势。。
也确确实实是用您提供的脚本一步一步的安装,然鹅,全都是一样的问题。
现在唯一可能的区别也许就是我都是在虚拟机上弄得?
非UEFI版的编译都能正常通过。但是UEFI版的就不行。
想破脑袋也没想明白到底是为啥。
回复

使用道具 举报

13#
发表于 2021-4-2 16:57:45 来自手机 | 只看该作者
编译通不过,总有一些提示吧,可以根据这些提示搜一搜。

点评

感谢两位大大花时间帮我, 现在是常规版的g4d编译完全没问题,各种姿势通过。 但是uefi版的configure的时候就报 configure: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils 网上我有  详情 回复 发表于 2021-4-6 09:41
回复

使用道具 举报

14#
 楼主| 发表于 2021-4-6 09:41:17 | 只看该作者
本帖最后由 fmwqsn 于 2021-4-7 09:43 编辑
2011yaya2007777 发表于 2021-4-2 16:57
编译通不过,总有一些提示吧,可以根据这些提示搜一搜。

感谢两位大大花时间帮我,
现在是常规版的g4d编译完全没问题,各种姿势通过。
但是uefi版的configure的时候就报
configure: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils
网上我有搜,但是没找到什么有用的东西。
也试过各种版本的系统和gcc(尤其是4.8),问题依旧。
binutils啥的相关的东西全都更的最新了。
主要是这个错我还从来没遇见过,完全不知道是啥原因。
只好舔着脸来这发帖。OTZ
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2021-4-20 12:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表