安装了gmp但是找不到它

6
为了编译自己的gcc,我需要gmp。因此,我下载了gmp的tarball,并按照通常的configure、make和make install步骤进行了安装。然而,之后,我无法通过输入“which gmp”在我的系统中看到任何gmp。所以我的问题是,gmp藏在哪里?我使用的是CentOS 5.6。
编辑
好的,我可以在/usr/local/include和/usr/local/lib中看到gmp的头文件和库文件。我使用了--with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib,但gcc的configure仍然抱怨找不到gmp。这里出了什么问题?

1
gmp是一个库。你究竟期望从which gmp中得到什么? - Mat
基本上,在安装了gmp之后,gcc的配置仍然无法识别它。我基本上可以在/usr/local/include中看到头文件,在/usr/local/lib中看到库文件。但是我该如何告诉gcc安装程序呢? - MetallicPriest
5
尝试运行 configure --help 命令,并查找 GMP 配置标志。通常是 --gmp-include-path 或类似的选项。 - HonkyTonk
在安装gmp软件包后,您是否运行了ldconfig命令?通常,configure脚本尝试使用库构建程序,如果失败,则会报告为不存在的库。 ldconfig将重建链接器数据库,使ld能够正常工作。 - HonkyTonk
4个回答

2

尝试将

-–with-gmp=

改为

-–with-gmp-prefix=

感谢doober


这是什么的解释?你的意思是“to”,而不是“on”。我们将一件事物改变为另一件。 - abcd
我按照你的建议编辑了我的答案。我不知道第二个选项为什么有效,而gcc手册只包含--with-gmp=选项。但是在那时,-–with-gmp-prefix=对我起作用了。 - bartolo-otrit

1
这里的关键点只有 @Mat 一席之地提到,那就是 gmp 是一个库。它不是二进制文件。因此,生成的资源是一堆 libgmp* 文件,位于 $prefix/lib 目录下。
没有 $prefix/bin/gmp...

1

我认为你应该使用一些参数运行./configure脚本:

./configure --prefix=/usr

默认前缀为 /usr/local。

如果您的系统是64位:

./configure --prefix=/usr --libdir=/usr/lib64

然后执行'make && make install',应该会将所有内容安装到正确的位置。


1

你说得对,你需要使用--with-gmp-xxx开关。

如果gmp不在默认的运行时链接器位置中,你可能还需要设置运行路径为/usr/local/lib或者你安装gmp的任何其他位置:

$ export LD_RUN_PATH=/usr/local/lib
$ configure ...
$ make ...

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