我正在使用gcc
并编译我的程序。我决定飞地并尝试使用CreateEnclave()
.它说当我添加标题时<enclaveapi.h>
不存在。
当我使用标头<winbase.h>
时,它会返回undefined reference to 'CreateEnclave'
.如何摆脱此错误?我正在使用gcc main.c -o main.exe -mwindows
的基本编译。
<enclaveapi.h>
在最新的Windows SDK中。 在此处下载。SDK提供了用于构建Windows代码的最新标头和库。 更新编译器开关以使用新路径。
或者,您可能只需动态加载 API,而无需安装新的 SDK:
typedef PVOID (__stdcall *create_enclave_type)(HANDLE,LPVOID,SIZE_T,SIZE_T,DWORD,LPCVOID,DWORD,LPDWORD);
create_enclave_type fnCreateEnclave;
HMODULE hKernel = LoadLibrary(L"kernel32.dll");
fnCreateEnclave = (create_enclave_type)GetProcAddress(hKernel, L"CreateEnclave");