0

我正在尝试在我的 enclave 项目中添加 OpenCV。我可以在 Visual Studio 2015 中将 OpenCV 项目作为独立的 win32 控制台应用程序运行。但是当我在我的 enclave 项目中开始这样做时,我遇到了错误。我尝试在 enclave 项目中从 opencv 添加以下库:

#include "windows.h"
#include <opencv2/core/core.hpp>
#include "opencv2/imgcodecs.hpp"
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
#include "drawLandmarks.hpp"

但是我遇到了很多错误。我还需要在我的项目中包含 windows.h 文件。这些库是否允许包含在 enclave 项目中?

在项目中添加 opencv 静态库时,我按照以下步骤操作:-

  1. 使用 CMake 生成 OpenCV 静态库,

  2. 在 inlucde 目录中添加了以下值:-

    C:\Program Files (x86)\Intel\IntelSGXSDK\include C:\Program Files (x86)\Intel\IntelSGXSDK\include\libc++ C:\Program Files (x86)\Intel\IntelSGXSDK\include\tlibc C:\Users \fs5ve\Downloads\Opencv-static\static\opencv\include C:\Users\fs5ve\Downloads\Opencv-static\static\opencv\build-32-extra\install\include C:\Users\fs5ve\Downloads\Opencv -static\static\opencv\build-32-extra\install\include\opencv C:\Users\fs5ve\Downloads\Opencv-static\static\opencv\build-32-extra\install\include\opencv2 C:\Program文件 (x86)\Microsoft Visual Studio 14.0\VC\include %(AdditionalIncludeDirectories)

  3. 在其他库目录中添加了以下值:-

    $(SGXSDKInstallPath)bin\$(Platform)\Debug;C:\Users\fs5ve\Downloads\Opencv-static\static\opencv\build-32-extra\install\x86\vc14\staticlib

  4. 在附加依赖项中添加了以下值:-

    sgx_trts_sim.lib sgx_tstdc.lib sgx_tservice_sim.lib sgx_tcrypto.lib sgx_tcxx.lib sgx_urts_sim.lib sgx_uae_service_sim.lib opencv_calib3d400d.lib opencv_core400d.lib opencv_highgui400d.lib opencv_face400d.lib opencv_features2d400d.lib opencv_flann400d.lib opencv_imgcodecs400d.lib opencv_imgproc400d.lib opencv_ml400d.lib opencv_objdetect400d. lib opencv_photo400d.lib opencv_shape400d.lib opencv_stitching400d.lib opencv_superres400d.lib opencv_video400d.lib opencv_videoio400d.lib opencv_videostab400d.lib

我收到以下错误:- 无法打开包含文件:'emmintrin.h':没有这样的文件或目录

我在 Include 目录中添加了“C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include”。但之后我收到以下错误:- 无法打开包含文件:'malloc.h':没有这样的文件或目录

4

1 回答 1

1

问题是 OpenCV 有很多在 Enclave 中根本不可用的依赖项和指令(例如英特尔 SSE 或标准 pthreading)。

所以直接链接是不可能的,但你总是可以移植它——尽管我必须建议这是一项相当庞大的工作,所以你必须考虑它是否值得。

于 2018-06-15T16:04:13.507 回答