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

Ubuntu下解决TSS.MSR CPP编译时openssl/sm3.h找不到的问题

解决Ubuntu下编译TSS.CPP时找不到openssl/sm3.h的问题

问题根源

openssl/sm3.h是OpenSSL 1.1.1版本后新增的头文件,Ubuntu 20.04及更早版本的官方libssl-dev包对应OpenSSL版本低于1.1.1,因此即便安装了该包也无法找到这个头文件。

解决方案

1. 升级Ubuntu系统到22.04及以上版本

Ubuntu 22.04及后续版本默认搭载OpenSSL 3.x,已包含sm3.h头文件。升级完成后重新安装依赖:

sudo apt update && sudo apt upgrade
sudo apt install --reinstall libssl-dev

2. 手动编译安装新版OpenSSL(不升级系统)

若不想升级系统,可自行编译支持SM3的OpenSSL版本(推荐1.1.1系列或3.x系列):

  • 下载并解压OpenSSL源码(以1.1.1w版本为例):
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
  • 配置编译参数并指定安装路径:
./config --prefix=/usr/local/openssl
  • 编译并安装:
make -j$(nproc)
sudo make install
  • 编译TSS.CPP时指定新版OpenSSL的头文件和库路径:
CFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib" make

3. 调整TSS.CPP的Makefile(可选)

如果上述方法仍无效,检查TSS.CPP目录下的Makefile,确认是否存在OPENSSL_INCLUDE、OPENSSL_LIB这类指定OpenSSL路径的变量,手动修改为新版OpenSSL的路径后再执行make。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:37:05