С помощью плагина Visual Studio SGX я создал демонстрационное приложение, EDL которого выглядит следующим образом:
enclave {
from "sgx_tstdc.edl" import *;
trusted {
public char* sign([in, string] const char* message, unsigned saltLength);
};
untrusted { };
};
Функция знака прямо сейчас просто возвращает nullptr
так что это не должно быть проблемой.
Когда я пытаюсь скомпилировать его с MSVC, выдает ошибку _mm_lfence identifier not found
,
Эта функция автоматически используется прокси-функцией SGX, и я не контролирую ее.
Любая подсказка о том, что происходит?
После различных тестов я заметил, что MSVC, как и компилятор Intel, пытался скомпилировать файл как файл C ++, пока он был простым C.
Ручная установка C в качестве цели, решила проблему.
Надеюсь, что это поможет будущим читателям.
Других решений пока нет …