Ubuntu虚拟机编译OQS版OpenSSL时make -j执行失败求助
Ubuntu虚拟机编译OQS版OpenSSL时make -j执行失败求助
嘿,看起来你遇到的是OQS库头文件没被OpenSSL编译流程识别到的问题,我来给你几个实用的解决思路:
先确认OQS相关文件是否存在
错误提示找不到oqs/oqs.h,首先检查你的系统里有没有这个文件。可以用命令查找:find / -name oqs.h 2>/dev/null如果找不到,说明你可能漏了拉取OQS的源码或者没正确安装OQS库。
检查OQS-OpenSSL的子模块是否拉取完整
很多人编译OQS版OpenSSL时会漏掉子模块的步骤。如果你是直接克隆的仓库,记得要带递归参数:git clone --recursive https://github.com/open-quantum-safe/openssl.git如果之前已经克隆了仓库但没拉子模块,现在进入OpenSSL目录执行:
git submodule update --init --recursive这一步会自动拉取OQS的源码,之后再重新执行
./config和make -j试试。编译时手动指定OQS路径(如果OQS没装到系统默认位置)
如果你是单独编译安装的OQS库,在配置OpenSSL的时候需要明确指定OQS的头文件和库文件路径,比如:./Configure --prefix=/usr/local/openssl-oqs enable-oqs \ --with-oqs-include=/usr/local/include \ --with-oqs-lib=/usr/local/lib这里的路径要替换成你实际安装OQS的目录,确保
/usr/local/include/oqs/下有oqs.h,/usr/local/lib下有OQS的库文件。设置环境变量让系统找到OQS文件
临时设置环境变量,让编译器能找到OQS的头文件和库:export C_INCLUDE_PATH=/usr/local/include:$C_INCLUDE_PATH export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH设置完后重新执行
make -j。
你可以先从检查子模块是否完整开始,这是最常见的问题点,希望这些方法能帮你顺利编译!
备注:内容来源于stack exchange,提问作者Moo
相关产品推荐
相关产品推荐

