【问题标题】:gmp is missing while configuring building gdb from source从源配置构建 gdb 时缺少 gmp
【发布时间】:2022-12-31 04:20:53
【问题描述】:

我正在尝试从源代码构建 gdb,版本是 11.1。 我配置了GMP包括路径,但是configure脚本还是报错。

configure: error: GMP is missing or unusable

我复制了配置日志。

configure:10433: checking for libgmp
configure:10453: gcc -o conftest -g -O2      conftest.c -lncurses -lm -ldl  -lgmp >&5
conftest.c:53:17: fatal error: gmp.h: No such file or directory

我的配置命令如下所示。

configure --prefix=/home/xxx/ins/gdb_11 --with-gmp-include=/home/xxx/ins/gmp-6.2.1/include --with-gmp-lib=/home/xxx/ins/gmp-6.2.1/lib

可能是什么问题?

【问题讨论】:

    标签: gdb gmp


    【解决方案1】:

    确保你安装了 libgmp-dev

    我的操作系统是 ubuntu 20.04

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install libgmp-dev
    wget http://ftp.gnu.org/gnu/gdb/gdb-11.2.tar.gz
    tar -xvzf gdb-11.2.tar.gz
    ./configure
    make
    sudo make install
    

    一旦你安装了 GDB,你可以打印 GDB 版本来测试它是否安装正确。
    gdb --version img

    【讨论】:

      【解决方案2】:

      您可以使用 gdb 的配置选项:

        --with-libgmp-prefix="path to gmp"
      

      【讨论】:

        【解决方案3】:

        通过查看 GDB 的配置脚本,我认为问题在于 GDB 没有选择 --with-gmp-include 和 --with-gmp-lib 配置标志。这些标志在顶层配置脚本中处理,并通过环境提供给每个子组件(GDB、binutils、ld 等),看起来 GDB 没有选择这些。

        前进的最简单方法是在配置时覆盖 CFLAGS 和 CXXFLAGS,例如:

        configure CFLAGS="-I/gmp/include/path -L/gmp/lib/path" CXXFLAGS="-I/gmp/include/path -L/gmp/lib/path"
        

        --- 稍后编辑 ---

        虽然这个答案中的技术会起作用,但正确的答案是由 jiang da 给出的。

        【讨论】:

          【解决方案4】:

          我想分享我如何解决这个问题的经验。服务器上没有sudo
          首先,从该站点下载GMP 源(其证书现已过期)。我使用了wget --no-check-certificate "https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz"。提取tar -xf gmp-6.2.1.tar.xz;在其目录./configure --prefix=$HOME/.localmakemake installmake check(安装程序礼貌地询问,出于某种原因check目标仅在install之后执行)。
          使用提取的 gdb 源的最后操作:在 gdb 目录 ./configure --prefix=$HOME/.localmakemake install 中。未遇到 gmp 错误。

          【讨论】: