1

通过 Visual Studio SGX 插件,我创建了一个演示应用程序,其 EDL 如下:

enclave {
    from "sgx_tstdc.edl" import *;
    trusted {
        public char* sign([in, string] const char* message, unsigned saltLength);
};
    untrusted { };
};

sign 函数,现在,只返回 a nullptr,所以它不应该是问题。

当我尝试用 MSVC 编译它时,它给了我错误_mm_lfence identifier not found

此功能由 SGX 代理功能自动使用,我无法控制它。

关于发生了什么的任何线索?

4

1 回答 1

1

经过各种测试,我注意到 MSVC 和 Intel 编译器都试图将文件编译为 C++ 文件,而它是纯 C。

手动将C设置为目标,解决了这个问题。

希望这对未来的读者有所帮助。

于 2018-03-03T17:18:28.553 回答