栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

在Ubuntu上安装NTL库

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Ubuntu上安装NTL库

文章目录
    • 介绍:
    • 步骤:
            • 0. 下载前的准备
            • 1. 下载GMP并解压
            • 2. 下载NTL并解压
            • 3. 对GMP进行编译
            • 4. 对NTL进行编译
    • 关于wsl下载和文件权限:
    • 参考资料:

介绍:

NTL是一个高性能的,可移植的c++库,提供任意长度整数的数据结构和算法;对于整数和有限域上的向量、矩阵和多项式;并且适用于任意精度的浮点运算。我们在Ubuntu(我使用的是Windows下的子系统wsl,但是应该是一样的)

步骤: 0. 下载前的准备

首先我们要确保必须有g++ 和 m4
g++: sudo apt-get install g++
m4: sudo apt-getinstall m4
确认安装:g++ --v 和m4 --v

1. 下载GMP并解压

GMP网站:https://gmplib.org/,这里我下载的是当时最新的版本gmp-6.2.1。
下载解压过程不再赘述,我是在wsl里面所以很方便,如果大家可以使用图形化界面也会很方便,使用命令行下载的话就自己去百度一下,我也不懂。

2. 下载NTL并解压

NTL网站:https://libntl.org/download.html,这里我下载的还是当时最新的版本ntl-11.5.1

3. 对GMP进行编译

首先我们把刚刚下载好的放到一起嗷。如下图所示:

然后进入gmp这个文件夹
一条一条依次输入

./configure

make

make check

sudo make install

这一步应该不存在问题,正确编译后:
输入ls /usr/local/include/ 会看到gmp.h

输入ls /usr/local/lib/ 会看到一些这样子的文件(我的可能多一些,因为我是两个实验做完截的图)

4. 对NTL进行编译

我们进入ntl的文件夹中的src文件夹中,然后重复上面的指令:

./configure

make

make check

sudo make install

ATTENTION:这里在make过程中可能会出错,下图是我的报错提示
我们看到说version number mismatch这一行是我们的出错原因。
这里我参考了 这个网站 中的某个回答,输入sudo ldconfig, 把新安装的gmp库更新下即可解决此问题。
关于sudo ldconfig
之后应该顺利进行了,成功后如下图所示:

关于wsl下载和文件权限:

关于wsl下载的一些事:
如果把在Windows里下载解压好的文件夹拖入Ubuntu中,会发生权限问题,拖入的文件甚至连访问都不可以,需要使用chmod -r 777 file_name指令去加权限(使用-r,因为需要递归地改变,子文件也是都需要改的)。
那比较简单的替代方法就是在Windows中解压后,在Ubuntu中使用cp指令复制一个过去(Windows磁盘挂载在mnt/中),这样权限不会发生问题。

参考资料:
  1. https://stackoverflow.com/questions/42607099/installing-ntl-with-gmp
  2. https://libntl.org/doc/tour.html(选项5,9)
  3. https://stackoverflow.com/questions/50046463/version-number-mismatch-inconsistency-between-gmp-h-and-libgmp
  4. https://zhuanlan.zhihu.com/p/66102855
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468240.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号