我遇到的问题是在我的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)this页面上有说明,描述如何安装GMP
5)我从here下载了gmp-6.1.2.tar.lz。(这并不重要,但请注意说明中的扩展名不同......我提到的一切只是以防万一)
6)我发现.lz扩展名需要lzip command:
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
八、
注意:在阅读说明时,我没有使用-prefix=$HOME/sw进行配置,因为我希望将其安装在/usr/local目录中,而不是安装在我的主目录中
./configure
make
make check
未出现错误,所有内容均为绿色并显示“通过”
九)
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>
十一)
我在我的目录中查找
ls -la /usr/local/include/
在那里找到了gmp. h
12个)
我创建了一个简单的.cpp文件来测试它(基本上只是main和相关的include)
g++ someFile.cpp -lgmp
上面有这个
# include <gmp.h>
而且它似乎没有找到它,同样的致命错误消息。
其他人似乎也遇到过这个问题(我所能找到的都是几年前的事了)one of the guys这样做了:
brew uninstall gmp
brew install gmp
我也照做了,然后又试着做了一次NTL,还是不行...
我知道我可以在构建中放置一个标志来禁止使用GMP:
如果你只需要静态库,你也可以给configure脚本提供--disable-shared选项。但是,如果你最终想把NTL构建成一个共享库,那么你也必须把GMP构建成一个共享库。
但我真的很想去。
我做错了什么?有什么建议吗?
我想发送一个bug report,但我不认为这是一个错误,这是与我的配置。
1条答案
按热度按时间t98cgbkg1#
也许安装NTL的问题可以通过编辑/src目录下的file.txt来解决。您可以尝试在以下字符串中将
@{GMP_XXX}
替换为适当的目录(例如/usr/local/
、/usr/local/include/
、/usr/local/lib/
):此外,this tutorial可能非常有用。