写本文的目的是,liboqs的github官方只给出了linux/Mac的编译,而对于windows只给出了建议编译方式,这里我们采用Microsoft Visual Studio 2022编译liboqs库,用于windows平台。我们的系统是windows 10, 21H2, OS Build 20348.
因为有些太古老的系统会有很多不支持。

下载源码和编译配置

首先拉取源码

1
2
git clone -b main https://github.com/open-quantum-safe/liboqs.git
cd liboqs

在配置编译工具链的时候为了方便,我们使用Clion,加载源码并且配置CMake和build。

我们需要在liboqs下自己创建一个编译文件夹build,并且后续的ninja等编译和安装测试命令都在此文件夹下进行。

但是这里我们需要首先安装VS 2022,不然是无法选中ToolChain为Visual Studio的,安装过程这里省略啦,在勾选安装的组件的时候要选择对应版本的sdk和build工具,此处参见网上visual studio安装博客。下面在勾选配置的时候可以自己更改安装位置,Generator选择ninja。最后,在Cmake option中可以加上-DBUILD_SHARED_LIBS=ON构建动态链接库。

编译

在安装Visual Studio之后,系统会生成一个专门带有VS编译环境的终端,省去了配置很多环境变量。我们在windows搜索中输入x64可以看到

打开此终端,输入

1
ninja

进行编译。编译完成后,在测试前,安装Python环境,并且安装必要的python库,这里可以采用conda环境,并且将conda放进环境变量(用户环境变量即可),以便在VS编译环境的终端窗口中调用conda环境中的python。

在刚刚进行编译的x64 VS终端中启用conda python的base环境

1
conda activate base

利用pip安装以下库:pip install pytest pytest-xdist unzip xsltproc graphviz pyyaml graphviz doxygen

测试编译

最后我们测试编译结果

1
ninja run_tests

如图所示,测试完成。

安装

输入

1
ninja install

会将liboqs安装在前面我们自己指定的位置。

卸载

输入

1
ninja uninstall

直接将所有安装文件卸载。