如何在Linux上设置i686-elf交叉编译器?

4
当我按照OSDev Wiki上的Bare Bones教程进行学习时,出现了以下错误:
i686-elf-as: command not found

我尝试按照GCC交叉编译器的说明进行操作,但在运行以下命令时出现了问题:

../binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-werror

I got the error:

bash: ../binutils-x.y.z/configure: No such file or directory.

我该如何设置我的GCC交叉编译器,以使其与本教程配合使用?
3个回答

9

将命令中的 x.y.z 替换为 binutils 版本。


2

请按照以下指示操作:

  • Linux:
$ git clone https://github.com/lordmilko/i686-elf-tools
$ cd i686-elf-tools
$ ./i686-elf-tools.sh linux
  • macOS:
  • 确保您已经预先安装了brew
$ brew update
$ brew install i686-elf-binutils
$ brew install i686-elf-gcc

0

您需要在/home/src中安装两个东西,分别是 -

  1. binutils-x.y.z(有时可能没有z,只能是x.y)
  2. 在/src下创建一个名为“build-binutils”的文件夹。稍后需要cd到build binutils并使用命令-“./binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disab".......................
  3. 注意-您可能会收到地址不是绝对地址的错误...在这种情况下...获取root访问权限(通过在shell上执行sudo su),然后转到binutils-x.y.z文件夹并检查是否有任何名为“configure”的文件...如果有,则上述所有命令都应该可以正常工作!

目录的外观如下 -

|src| ---->binutilsx.y.z ---->build-binutils

再次提醒,您需要进入build-binutils目录并执行上述命令(../binutils-x.y.z/configure --target=$TARGET --prefix="$),但在此之前,需要检查'binutilsx.y.z'文件夹中是否有configure文件(可以通过切换到root用户来进行检查)...如果存在,那么命令应该可以正常工作。

如果您无法看到'configure'文件(注意-configure可能具有不同的名称-configure.ac或仅为configure)...那么可能需要安装不同版本的binutils-x.y.1.1.2等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接