安装SGX PSW执行make psw时遇'SGX_XFRM_PKRU未声明'错误
SGX PSW编译错误:SGX_XFRM_PKRU未定义的解决办法
编译SGX PSW执行make psw时触发如下错误:
error: ‘SGX_XFRM_PKRU’ was not declared in this scope; did you mean ‘SGX_XFRM_AVX’?
121 | se_misc_attr->secs_attr.xfrm &= ~(SGX_XFRM_PKRU);
注:已执行source /opt/intel/sgxsdk/environment完成SDK环境配置。
解决办法:
- 验证SDK与PSW版本兼容性:
SGX_XFRM_PKRU是SGX SDK较新版本引入的宏,若PSW代码依赖该宏但本地SDK版本过旧,就会出现此错误。执行sgx_version查看当前SDK版本,确认是否匹配PSW代码的版本要求。 - 手动添加宏定义:若无法立即升级SDK,可在报错的C文件开头添加以下定义:
该值对应PKRU扩展的XFRM位,符合SGX官方规范。#define SGX_XFRM_PKRU (1ULL << 9) - 确认环境变量生效:执行
echo $SGX_SDK检查环境变量是否正确指向/opt/intel/sgxsdk,确保编译阶段能正确加载SDK头文件。 - 切换PSW代码分支:若PSW代码来自Git仓库,切换到与本地SDK版本匹配的分支,避免使用依赖新SDK特性的最新分支。
内容的提问来源于stack exchange,提问作者sama
相关产品推荐
相关产品推荐

