通过Visual Studio SGX插件,我创建了一个演示应用程序,其EDL如下:
enclave {
from "sgx_tstdc.edl" import *;
trusted {
public char* sign([in, string] const char* message, unsigned saltLength);
};
untrusted { };
};
现在,sign函数只返回一个nullptr
,所以它应该不是问题。
当我尝试使用MSVC编译它时,它会给我错误_mm_lfence identifier not found
。
此功能由SGX代理功能自动使用,我无法控制它。
有关正在发生的事情的任何线索?
答案 0 :(得分:0)
经过各种测试,我注意到MSVC以及英特尔编译器试图将文件编译为C ++文件,而它是普通的C.
手动将C设为目标,解决了问题。
希望这有助于未来的读者。