- 前言
- 一、依赖库汇总
- 二、问题
- 1.GCC版本不对
- 2. libsodium库有问题
- 3. libtool 的版本有问题
- 4. boost版本问题
- 5. 安装 libboost-dev找不到包
- 6. 杂项
前言
在CentOS中需要依赖库的名称以及版本与MP-SPDZ官网提供的版本不统一,这里记录一下。
版本信息:
操作系统:CentOS 7
MP-SPDZ: 0.2.9
一、依赖库汇总
yum install autoconf gcc gcc-c++ git libboost-dev libboost-thread-dev libgmp3-dev libntl-dev libsodium-dev libssl-dev libtool m4 make man python sudo texinfo valgrind vim yasm tar bzip2 wget openssl11-devel openssl11-static zlib-devel libsodium-devel boost169-devel gmp-devel rh-python35 libsodium-static boost169-static zlib-static openssl openssl-perl llvm-toolset-7
先使用yum 安装,安装后,下载MP-SPDZ压缩包,解压后。
cd MP-SPDZ make -j 8 tldr
如果没有报错,那么恭喜你,编译成功。
但是大概率会出问题。
Centos7中默认安装的gcc版本是4.8.5,但是MP-SPDZ需要的版本是5以上,所以需要升级,将环境中的gcc版本变更。
1、安装centos-release-scl
sudo yum install centos-release-scl
2、安装devtoolset,注意,如果想安装8.版本的,就改成devtoolset-8-gcc,以此类推
sudo yum install devtoolset-7-gcc*
3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
scl enable devtoolset-7 bash
大功告成,查看一下gcc版本
gcc -v
4、直接替换旧的gcc
mv /usr/bin/gcc /usr/bin/gcc-4.8.5 ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g+±4.8.5 ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++ gcc --version g++ --version2. libsodium库有问题
安装 libsodium 1.0.18即可,步骤如下:
1、下载并解压
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz tar -zxf libsodium-1.0.18-stable.tar.gz cd libsodium-stable
2、编译安装
./configure --prefix=/usr make && make check sudo make install sudo ldconfig3. libtool 的版本有问题
安装 libtool 2.4.6 可以解决
1、下载并解压
wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz tar -zxf libtool-2.4.6.tar.gz cd libtool-2.4.6
2、编译安装
./configure --prefix=/usr sudo make sudo make install sudo ldconfig4. boost版本问题
1、使用安装包安装boost库,首先要下载安装包,可以到下面的链接找:
https://download.csdn.net/download/kaka__22/85201057
2、下载后解压
tar -zxvf boost-1.70.0.tar.gz
3、进入到解压目录
4、执行里面的脚本bootstrap.sh
./bootstrap.sh
5、有个可执行文件b2
./b2 install
如果不按这个命令编译可能会出现错误,这个要注意
5. 安装 libboost-dev找不到包yum install boost-devel6. 杂项
1、编译MP-SPDZ遇到的问题
应该是程序内部冲突的问题。运行一下命令可以解决
make clean
2、编译 .x协议遇到的问题
CentOS 7的系统编译器比较旧,使用以下命令完成
scl enable devtoolset-7 make ...



