Ubuntu 20.04下Intel SGX运行SampleApps报错:缺失libsgx_urts.so.2及environment文件
解决Ubuntu 20.04下Intel SGX SampleApps运行报错及环境文件缺失问题
问题分析
运行SampleApps的./app时出现如下报错:
./app: error while loading shared libraries: libsgx_urts.so.2: cannot open shared object file: No such file or directory
尝试执行source /opt/intel/sgxsdk/environment配置环境时,又提示文件不存在,核心原因是SGX SDK的环境变量未正确配置,且找不到官方提供的环境初始化脚本。
解决方案
1. 定位正确的环境脚本或SDK文件
先确认SGX SDK的实际安装状态:
- 用find命令查找环境相关脚本:
部分版本的SDK环境脚本可能叫find /opt/intel/sgxsdk -name "*.sh" find / -name "environment" | grep sgxsgx_env.sh,或安装路径不在/opt/intel/sgxsdk(比如通过apt安装的SDK可能在/usr/share/sgxdk目录下)。
2. 手动配置环境变量
如果确实找不到官方环境脚本,手动设置关键变量即可:
- 先找到
libsgx_urts.so.2的路径:
通常64位系统下路径为find /opt/intel/sgxsdk -name "libsgx_urts.so.2"/opt/intel/sgxsdk/lib64,32位系统为/opt/intel/sgxsdk/lib。 - 临时配置环境变量:
执行完上述命令后,再运行export SGX_SDK=/opt/intel/sgxsdk export LD_LIBRARY_PATH=$SGX_SDK/lib64:$LD_LIBRARY_PATH./app测试是否正常。
3. 配置永久生效
把上述环境变量配置添加到用户bash配置文件中,避免每次重启终端都要重新设置:
- 编辑
~/.bashrc文件:nano ~/.bashrc - 在文件末尾添加:
export SGX_SDK=/opt/intel/sgxsdk export LD_LIBRARY_PATH=$SGX_SDK/lib64:$LD_LIBRARY_PATH - 保存退出后,执行以下命令让配置立即生效:
source ~/.bashrc
4. 检查SDK安装完整性
如果以上操作都无效,大概率是SDK未完整安装:
- 若为手动解压安装的SDK,确认是否运行过安装脚本(比如
install.sh),部分SDK需要执行该脚本完成初始化配置。 - 确认SGX驱动已正确安装,可通过
dmesg | grep sgx检查驱动加载状态。
内容的提问来源于stack exchange,提问作者Javid
相关产品推荐
相关产品推荐

