如何拉取libsnark库?——新手指南教程

    技术2025-08-06  13

    电脑:Mac(这不重要 服务器:Ubuntu 18.0.4 LTS(这个很重要 SSH连接

    如何拉去libsnark库?

    作为一个小白,这两天要用libsnark库,可是我竟然连这个库咋装都不知道,着实丢人。折腾了两天cmake和make,终于有些头绪,特此记录下来。

    1. 先把libsnark搞下来

    在你要创建项目的根目录中,创建一个CMakeLists.txt(内容可以在github上参照libsnark-tutorial),随后拉取libsnark代码并拉取依赖:

    git clone https://github.com/scipr-lab/libsnark.git cd libsnark git submodule init && git submodule update

    2. 搞定依赖库

    首先我们康一下libsnark的官网,有非常详细(但是还不够详细)的安装指南:link

    其实后面给出代码的部分还好,主要是前面这一段:

    这段写的比较简单,但是操作起来还是有些复杂。简单来说,就是上面提到的这6个依赖需要分别拉取,然后进行编译,我们一个一个看:

    libff 执行如下命令进入libsnark的依赖中,并找到libff: cd libsnark/depends/libff git submodule init && git submodule update

    创建build文件夹,并编译:

    mkdir build && cd build cmake ..

    这里多说一嘴。cmake …指明程序要去当前目录的上层目录中寻找CMakeLists.txt,这步很关键,也是前面我们为什么首先要在项目根目录中创建CMakeLists.txt的原因

    接着:

    make sudo make install

    这里注意,有些时候如果直接make install可能会报错:file INSTALL cannot set permissions on “/usr/local/include/libff”,这是因为权限不够,添加sudo并输入密码即可

    这样libff就成功编译并且作为依赖库啦~可以使用如下命令检查一下:

    make check

    出现如下结果,表明成功!

    libfqfft:基本原理与libff相同,在此不加赘述。 cd libfqfft git submodule init && git submodule update mkdir build && cd build cmake .. make sudo make install make check //检查一下 GTest : GTest这边基本是不需要操作的,我只做了一个拉取工作: cd gtest git submodule init && git submodule update ate-pairing: 稍有不同 cd ate-pairing make -j test/bn xbyak:这个简单: cd xbyak sudo make install

    至此依赖库完成!

    3. 接着安装

    首先根据我们的ubuntu版本,进行安装:(其他版本请移步官网查看)

    sudo apt install build-essential cmake git libgmp3-dev libprocps-dev python3-markdown libboost-program-options-dev libssl-dev python3 pkg-config

    接下来回到最外层的libsnark目录下:

    git submodule init && git submodule update mkdir build && cd build cmake ..

    如果上述依赖库都没有问题了,这步就不应该报错了哦

    编译并运行查看:

    make make check

    结果如下:

    完成!

    总结:其实整个过程逻辑很简单,命令也就那么几个来回用,只不过对于linux和cmake小白的我来讲,一开始不知从何入手~

    Processed: 0.011, SQL: 10