You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio 2019的C++项目中导入liboqs模块?

Visual Studio 2019 下liboqs安装配置落地步骤

适用环境:VS2019、C++17标准、64位Windows系统

前置准备

先确认本地已经安装以下组件:

  • Visual Studio 2019,安装时勾选「使用C++的桌面开发」工作负载
  • CMake(版本≥3.16,安装时勾选「Add CMake to the system PATH」选项)
  • Git for Windows

步骤1:拉取完整源码

在你打算存放liboqs源码的目录下打开Git Bash,执行以下命令拉取代码:

git clone --recursive https://github.com/open-quantum-safe/liboqs.git
cd liboqs

必须加--recursive参数拉取嵌套子模块,漏了这步后续100%编译失败。如果已经拉过代码没加参数,就在源码根目录执行git submodule update --init --recursive补全子模块

步骤2:CMake配置生成VS工程

  1. 在liboqs源码根目录新建名为build的空文件夹
  2. 从Windows开始菜单找到并打开x64 Native Tools Command Prompt for VS 2019(不要用普通CMD/PowerShell,否则会找不到VS编译环境)
  3. 在打开的命令行中cd到刚才新建的build目录,执行配置命令:
cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=./install -DOQS_BUILD_ONLY_LIB=ON

命令参数说明:

  • -G "Visual Studio 16 2019":指定生成VS2019兼容的解决方案文件
  • -A x64:指定编译64位版本(liboqs不保证32位环境兼容性,不要选x86)
  • -DCMAKE_CXX_STANDARD=17:强制启用C++17标准,匹配你的开发环境
  • -DCMAKE_INSTALL_PREFIX=./install:指定最终编译产物的输出路径为build目录下的install文件夹,后续引用直接找这个路径就行
  • -DOQS_BUILD_ONLY_LIB=ON:跳过测试用例、示例程序编译,大幅缩短编译时间

步骤3:编译安装库文件

配置完成后,还是在刚才的x64原生命令行窗口执行编译命令:

# 编译Release版本
cmake --build . --config Release --target INSTALL

# 日常调试建议额外编译Debug版本
cmake --build . --config Debug --target INSTALL

等命令执行完成,打开build/install目录就能看到整理好的开发文件:

  • include目录:liboqs所有头文件
  • lib目录:编译生成的oqs.lib等库文件
  • bin目录:动态库版本对应的oqs.dll文件

步骤4:VS2019项目中引用配置

打开你自己的C++项目,右键项目选择「属性」,顶部平台选x64,按以下配置:

  1. 「C/C++ → 常规 → 附加包含目录」:添加build/install/include的完整本地路径
  2. 「链接器 → 常规 → 附加库目录」:根据当前编译配置(Release/Debug),添加对应版本的build/install/lib路径
  3. 「链接器 → 输入 → 附加依赖项」:添加oqs.lib
  4. 如果使用动态库编译版本,把build/bin目录下对应版本的oqs.dll复制到你项目的exe输出目录即可

配置有效性验证

写个最小测试代码验证配置是否正常:

#include <iostream>
#include <oqs/oqs.h>

int main()
{
    std::cout << "liboqs 版本:" << OQS_VERSION_TEXT << std::endl;
    std::cout << "支持的KEM算法数量:" << OQS_KEM_alg_count() << std::endl;
    return 0;
}

代码能正常编译运行,输出版本号和算法数量就说明配置成功。

常见问题

  • 编译时报找不到编译器/编译选项错误:检查是不是没开VS2019对应的x64原生工具命令行,普通CMD/PowerShell默认没有加载VS编译环境变量
  • 编译时报头文件缺失:90%是拉代码时没加--recursive参数,按步骤1里的命令补全子模块后重新配置即可
  • 链接时报符号找不到:检查是不是平台选了x86,或者Debug/Release版本的库和当前项目编译配置不匹配

内容的提问来源于stack exchange,提问作者user19316228

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 21:42:15