从源配置构建 gdb 时缺少 gmp

gmp is missing while configuring building gdb from source

我正在尝试从源代码构建 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 的配置脚本,我认为问题在于 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"

--- 稍后编辑 ---

虽然这个答案中的技巧可行,但正确答案是姜达给出的。

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

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

确保您已安装 libgmp-dev

我的 OS 是 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