MPC之SPDZ开源库安装过程中可能出现的错误

第一个错误:

执行

Scripts/tldr.sh

时出现:cp: cannot stat 'bin/Linux-avx2/*': No such file or directory

错误原因:你下的源代码不对,他确实没有这个文件。

解决办法

          办法1. 下载那个50多M的就没有这个问题。 下载链接:https://github.com/data61/MP-SPDZ/releases  下载那个tar.xz文件

          办法2.  把这个文件拷贝到到对应文件夹内。至于这个文件去哪找,参考办法1.

第二个错误:

执行

make -j 8 tldr

时出现 git submodule update --init mpir

fatal: not a git repository (or any of the parent directories): . git

make :[Makefile:258:mpir-setup] Error 128

错误原因:下载后的文件里,没有mpir库。虽然你按照提示安装了一堆东西,但这里面不包含mpir。你可以打开mpir文件夹看看,里面是空的。

解决办法:

1. 下载mpir。链接:https://github.com/data61/MP-SPDZ 。找到并打开mpir文件夹

2. 下载这个文件夹并解压。

unzip -o mpir-55fe6a9f52ca532a611a89f67186ed915bbf1123.zip

 3. 改名

mv mpir-55fe6a9f52ca532a611a89f67186ed915bbf1123 mpir

4. 进入你下载的SPDZ源代码根目录(注意,不是你下载的mpir根目录),删除原来的mpir文件夹

rm -rf mpir

5. 将解压的mpir文件夹移动到根目录下(注意,这步要根据你实际文件路径操作)

mv ../mpir ./

 现在就把mpir的源文件移动到spdz里了。安装和配置mpir不需要我们操心,因为作者写的Makefile会帮我们配置好。

6. 进入根目录,找到并打开Makefile,找到第258行:

7. 注释掉第258行

8. 至此,修改完成,再次执行

make -j 8 tldr

稍等片刻就执行成功。 

三、SimpleOT的安装

与mpir类似,但不需要注释makefile。

四、make时出现error

在make一个文件时,出现类似下面的错误。cc1plus: error: bad value ( tigerlake') for ' -march=' switch

g++和gcc版本问题,出现这个问题一般是版本在10以下,把它更新到10或者以上版本就好了。

sudo apt install gcc-10 g++-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --config gcc

五、 make -j 8 Programs/Circuits 出错

错误描述:

git submodule update --init Programs/Circuits
error: pathspec 'Programs/Circuits' did not match any file(s) known to git
make: *** [Makefile:233: Programs/Circuits] Error 1

这是因为下载的源代码里没有相关文件。需要自己下载。

解决方法:

1. 删除Programes里的Circuits文件夹。

2.在spdz根目录执行

git submodule add https://github.com/mkskeller/bristol-fashion.git Programs/Circuits

如果下载不下来,也可以用

git submodule add git://github.com/mkskeller/bristol-fashion.git Programs/Circuits

3.下载完成后,再make就成功了。 

这个解决办法主要使用git submodule命令的用法,想具体了解该命令的可以百度。这个办法也可以安装上述问题二三的mpir和SimpleOT库的安装,比较简单。

六、第六个错误

- Could NOT find Boost: Found unsuitable verston "1.71.0", but requtred is at least "1.75" (found/usr/include)
Make Error at cryptoTools/cmake/cryptoToolsDepHelper.cmake:209(message):
Fatled to find boost 1.75+ at "" or at system install
Call Stack (most recent call first):
Crusto01/akLis+s_+y+.90(include)

 安装boost1.75失败。因为之前安装的boost版本是1.71,而libOTe需要1.75以上版本,所以会在tldr里更新这个boost版本,但是因为更新失败了而退出。

解决办法:

第一个办法,执行

make boost

第一个办法最简单。但是boost官网有点难连。如果失败的话可以多试几次。或者使用第二个办法。基本上多试几次就会解决。

第二个办法,手动安装:

手动安装boost1.75

七、第七个错误

运行代码的时候提示

 error while loading shared libraries: libSPDZ.so: cannot open shared object file: No such file or directory

解决办法:重新编译一下libSPDZ.so

make libSPDZ.so

如果提示,该文件已经是最新的了,就把他删掉,在运行。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值