在 Ubuntu18.04 上编译安装 GMP

(2021.08.04)最近为了安装 IBM 的开源项目 HElib C++,需要在服务器上先安装GMP和NTL,NTL需要依赖GMP,所以先来安装一下GMP,记录一下在服务器上安装成功的过程:)

直接安装libgmp二进制文件
sudo apt-get install libgmp-dev

如果选择直接安装编译好的二进制文件,可以跳到看「检查是否安装成功」部分进行测试;如果想要编译安装,就接着往下看~

安装依赖

我的系统是Ubuntu 18.04 LTS,先安装一下GMP库的依赖:

sudo apt-get install m4

下载并解压GMP压缩文件

在GMP的官网1.tar.lz.tar.gz.tar.zst版本的压缩文件,可以下载到本地再上传到服务器,也可以复制链接后直接在服务器上使用 wget/curl 下载(这边以gmp-6.2.1为例):

# 1. 使用 wget 下载 gmp-6.2.1.tar.xz
wget https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz

# 2. 或者使用 curl 下载 gmp-6.2.1.tar.xz
curl https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz --output gmp-6.2.1.tar.xz

然后进行解压 2

# 1. 对gmp-6.2.1.tar.xz进行解压
xz -d gmp-6.2.1.tar.xz && tar xvf gmp-6.2.1.tar

# 2. 对gmp-6.2.1.tar.gz进行解压
tar -zxvf gmp-6.2.1.tar.gz

# 3. 解压zst文件需要先安装zstd包,然后再对gmp-6.2.1.tar.zst进行解压
sudo apt install zstd
tar -I zstd -xvf gmp-6.2.1.tar.zst

然后就可以开始安装了~

编译安装GMP

# 进入gmp目录
cd gmp-6.2.1
# 设置安装路径前缀,建议设置为/usr
./configure --prefix=/usr  --enable-cxx
# 开始编译安装
make
make check
sudo make install

检查是否安装成功

可以先进入 /usr/local/lib/usr/lib 目录查看有没有 libgmp 相关的文件。

cd /usr/local/lib
ls
# 大概会包含下面这些文件,基本上就说明安装成功了
# libgmp.a   libgmp.so.10      libgmpxx.la    libgmpxx.so.4.6.1
# libgmp.la  libgmp.so.10.4.1  libgmpxx.so    libgmpxx.so.4
# libgmp.so  libgmpxx.a

然后再来编译一个简单的测试

# 使用vim编辑器新建并打开一个文件
vim testGMP.cpp

vim打开的空文件中,切换为英文输入法,按i来进入插入模式,粘贴下面的代码,再按esc键退出插入模式,输入:wq然后回车,即可保存并退出。

#include <gmpxx.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
        mpz_t a, b, c;
        mpz_init(a);
        mpz_init(b);
        mpz_init(c);
        printf("========= Input a and b => Output a + b =========\n");
        printf("[-] a = ");
        gmp_scanf("%Zd", a);
        printf("[-] b = ");
        gmp_scanf("%Zd", b);
        mpz_add(c, a, b);
        gmp_printf("[+] c = %Zd\n",c);
        return 0;
}

然后可以通过ls命令看到当前目录下面有testGMP.cpp这个文件,就可以对其进行编译测试了。

# 编译testGMP.cpp
g++ testGMP.cpp -o testGMP -lgmp -lm
# 没有报错的话就说明安装成功~运行即可
./testGMP

根据提示输入大整数ab,到这里就说明测试成功了

========= Input a and b => Output a + b =========
[-] a = 11111111111111111111111111
[-] b = 22222222222222222222222222
[+] c = 33333333333333333333333333

如果这边文章对你有帮助的话,可以给这篇文章点一个赞👍
后面继续更新「编译安装NTL库」~

参考


  1. https://gmplib.org ↩︎

  2. tar.zst 文件格式解压 ↩︎

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Ubuntu 18.04上安装编译环境非常简单,以下是详细的步骤: 1. 打开终端,使用以下命令更新系统软件包列表: ``` sudo apt update ``` 2. 确保系统已安装编译所需的基本工具和库文件,使用以下命令进行安装: ``` sudo apt install build-essential ``` 这将安装gcc、g++和make等工具,以及一些常用库文件。 3. 安装编译所需的其他依赖库,根据您需要编译的软件不同,安装的依赖库也会不同。一般来说,您只需要在终端中运行以下命令: ``` sudo apt install <dependency> ``` 将`<dependency>`替换为您需要安装的具体依赖库的名称。您可以在软件的官方文档或README文件中找到所需的依赖库列表。 4. 如果您需要在编译过程中使用其他开发工具或库文件,您也可以使用`apt`包管理器进行安装。例如,安装Java开发环境(JDK),可以运行以下命令: ``` sudo apt install default-jdk ``` 这将安装默认版本的JDK。 5. 安装编译环境后,您可以使用gcc编译C语言程序,使用g++编译C++语言程序。例如,要编译名为`hello.c`的C语言程序,可以运行以下命令: ``` gcc -o hello hello.c ``` 这将生成可执行文件`hello`。 6. 最后,您可以通过运行以下命令来执行编译后的程序: ``` ./hello ``` 确保您在运行可执行文件之前,进入到该文件所在的目录。 这些步骤将帮助您在Ubuntu 18.04上安装编译环境,并准备好编译和运行程序。根据您的需求,您还可以进一步安装其他开发工具和库文件。 ### 回答2: 编译环境是指能够进行源代码编译和生成可执行文件的一组软件工具。在Ubuntu 18.04上安装编译环境需要执行以下步骤: 1. 打开终端,并使用以下命令更新软件包列表: ```shell sudo apt update ``` 2. 安装基本编译工具,包括gcc、g++和make: ```shell sudo apt install build-essential ``` 3. 安装其他常用的编译工具,如git和cmake: ```shell sudo apt install git cmake ``` 4. 安装特定语言的编译器,如Java的OpenJDK: ```shell sudo apt install openjdk-8-jdk ``` 5. 安装特定库和开发包,根据自己的需要安装不同的库和开发包,例如OpenGL库和Python开发包: ```shell sudo apt install libgl1-mesa-dev python-dev ``` 6. 验证安装。使用以下命令验证编译环境是否安装成功: ```shell gcc --version g++ --version make --version ``` 以上步骤完成后,您的Ubuntu 18.04系统就已经具备了完整的编译环境。您可以使用这些工具编译和构建各种源代码,并生成可执行文件。根据不同的需求,您还可以进一步安装其他特定的开发工具和库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风好衣轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值