【问题标题】:Build cross compiler - error: libmpfr not found构建交叉编译器 - 错误:找不到 libmpfr
【发布时间】:2014-09-14 08:59:09
【问题描述】:

我正在尝试构建一个交叉编译器。我遵循本教程:http://wiki.osdev.org/GCC_Cross-Compiler

我在 /opt/cross 中安装了 binutils。现在我尝试用 mpfr-2.4.2 安装 gcc-4.7.4。我使用命令来准备和配置:

export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"

mv gmp-4.3.2 gcc-4.7.4/gmp
mv mpfr-2.4.2 gcc-4.7.4/mpfr
mv mpc-0.8.1 gcc-4.7.4/mpc

# i am in usr/src directory
mkdir build-gcc
cd build-gcc

../gcc-4.7.4/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers

现在,我使用make all-gcc 构建,但收到以下错误:configure: error: libmpfr not found or uses a different ABI (including static vs shared).

为什么会发生这种情况,我该如何解决?

谢谢!

【问题讨论】:

  • 你看过croostool-ng甚至Buildroor吗?这些项目将负责创建工具链。
  • 您应该得到与该配置错误相对应的 config.log,它可能隐藏在某个子目录中。这将有助于确定问题的根本原因。

标签: c gcc cross-compiling


【解决方案1】:

您可以检查“configure”如何检查 libmpfr 是否可用(在 configure 查找它的位置),或者只是提供 libmpfr 的路径 - 可能是 --enable-libmpfr=/path/ 或类似的东西。

第二个选项是给 gcc 配置选项以禁用 mpfr (--disable-mpfr ?)

我假设您正在尝试为您的主机以外的其他架构编译 gcc。也许 gcc configure 找到了 libmpfr 但它是来自您的主机而不是来自您的目标架构的 mpfr?您可以查看 config.log 文件(如果有)并通过 configure 检查正在使用的 mpfr。

【讨论】:

    【解决方案2】:

    您是否尝试使用 export LD_LIBRARY_PATH=./gcc-4.7.4/mpfr/.libs 链接库

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 2021-08-14
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多