我遇到的问题是在我的 mac (Sierra) 上安装带有 GMP 的 NTL。
这些是我按照本教程采取的步骤
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
没有错误出现,一切都是绿色的,并说“通过”</p>
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,还是不行……</p>
我知道我可以在构建中放置一个标志以不使用 GMP:
如果您只需要静态库,您还可以向配置脚本提供选项 --disable-shared。但是,如果您最终想将 NTL 构建为共享库,那么您还必须将 GMP 构建为共享库。
但我真的很想。
我究竟做错了什么?有什么建议么?
我想过发送一个错误报告,但我不认为这是一个错误,它与我的配置有关。