我遇到的问题是在我的mac (塞拉利昂)上安装带有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.28)
注意:阅读说明时,我不配置-前缀=$ home /sw,因为我希望它安装在/usr/local目录中,而不是我的主目录中。
./configure
make
make check没有错误出现,每件事都是绿色的,并说‘过去’
9)
make install10)
返回新界区
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文件来测试它(基本上只是主要与相关的包含)
g++ someFile.cpp -lgmp把这个放在顶端
#include <gmp.h> 它似乎找不到,同样的致命错误信息。
其他人似乎也遇到了这个问题(我发现的只有几年前),其中一个人就是这样做的:
brew uninstall gmp
brew install gmp接着,我也做了,然后又试着做NTL,但它仍然不能工作…
我知道我可以在构建中加入一个不使用GMP的旗子:
如果您只需要静态库,也可以向配置脚本提供这个选项--禁用共享。但是,如果您最终希望将NTL构建为一个共享库,那么您还必须将GMP作为一个共享库。
但我真的很想。
我做错了什么?有什么建议吗?
我考虑过发送一个错误报告,但我不认为这是一个bug,而是我的配置。
发布于 2017-05-15 21:44:18
也许可以通过编辑file.txt目录中的/src来解决安装NTL的问题。您可以尝试在以下字符串中用适当的目录(例如,@{GMP_XXX}、/usr/local/include/、/usr/local/lib/)替换/usr/local/:
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 此外,本教程可能非常有用。
https://stackoverflow.com/questions/42607099
复制相似问题