使用 GMP 安装 NTL

问题描述 投票:0回答:2

我遇到的问题是在我的 Mac (Sierra) 上安装带有 GMP 的 NTL。

这些是我按照 this 教程

采取的步骤

1)我下载了Unix:ntl-10.3.0.tar.gz

2)双击文件在我的下载中创建ntl-10.3.0.tar.gz文件夹

3)

cd ~/Downloads/ntl-10.3.0/src
./configure
make

这给了我一个错误,因为我猜我还没有安装 GMP:

gen_gmp_aux.cpp:26:10: fatal error: 'gmp.h' file not found
#include <gmp.h>

4) 页面上有描述如何安装 GMP 的说明

5)我从这里下载gmp-6.1.2.tar.lz。 (这并不重要,但请注意说明中的扩展名不同......我提到了所有内容以防万一)

6) 我发现 .lz 扩展名需要 lzip 命令:

7)

brew install lzip
cd ~/Downloads
lzip -d gmp-6.1.2.tar.lz 
tar -xf gmp-6.1.2.tar
cd gmp-6.1.2

8)

注意: 阅读说明后,我没有使用 —prefix=$HOME/sw 进行配置,因为我希望将其安装在 /usr/local 目录中,而不是我的主目录

./configure
make
make check

没有出现错误,一切都是绿色的,并显示“通过”

9)

make install

10)

返回NTL

cd ~/Downloads/ntl-10.3.0/src/
make

我得到了和以前一样的错误:

gen_gmp_aux.cpp:26:10: fatal error: 'gmp.h' file not found
#include <gmp.h>

11)

我查看我的目录

ls -la /usr/local/include/

并在应该在的地方找到了 gmp.h

12)

我创建一个简单的 .cpp 文件来测试它(基本上只是 main 和相关的包含)

g++ someFile.cpp -lgmp

这个在顶部

#include <gmp.h> 

它似乎没有找到它,同样的致命错误消息。

其他人似乎也遇到过这个问题(我能找到的都是几年前的事) 其中一个人做了这个:

brew uninstall gmp
brew install gmp

我也跟着做了,然后又尝试制作NTL,还是不行……

我知道我可以添加一个标志,以便在构建中不使用 GMP:

如果您只需要静态库,您还可以向配置脚本提供选项 --disable-shared 。但是,如果您最终希望将 NTL 构建为共享库,那么您还必须将 GMP 构建为共享库。

但我真的很愿意。

我做错了什么? 有什么建议吗?

我想过发送错误报告,但我不认为这是一个错误,它与我的配置有关。

c++ macos unix gmp ntl
2个回答
0
投票

也许可以通过编辑/src目录中的file.txt来解决安装NTL的问题。您可以尝试将以下字符串中的

@{GMP_XXX}
替换为适当的目录(例如
/usr/local/
/usr/local/include/
/usr/local/lib/
):

GMP_PREFIX=@{GMP_PREFIX}

GMP_INCDIR=@{GMP_INCDIR}
\#directory containing gmp.h if using GMP 

GMP_LIBDIR=@{GMP_LIBDIR}
\#directory containing libgmp.a if using GMP 

此外,本教程可能非常有用。


0
投票

我也遇到这个问题了。当我使用make命令时,结果只是显示找不到头文件。 我解决这个问题的解决方案是手动安装 gmp 而不是使用 brew install gmp 命令。

© www.soinside.com 2019 - 2024. All rights reserved.