Добавление библиотек OpenCV в SGX-Enclave Project
Я пытаюсь добавить OpenCV в мой проект анклав. Я могу запустить проект OpenCV как отдельное консольное приложение win32 в visual studio 2015. Но когда я начал это делать в своем проекте анклавов, я получаю ошибки. Я попытался добавить следующие библиотеки из 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 в мой проект. Разрешено ли этим библиотекам включать в проект анклавов?
Я добавил следующие шаги при добавлении статической библиотеки opencv в проект:
Сгенерировал статическую библиотеку OpenCV с использованием CMake,
Добавлены следующие значения в каталогах 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)
Добавлено следующее значение в дополнительных каталогах библиотеки:-
$ (SGXSDKInstallPath) бен \$(Platform)\Debug, C: \ Users \ fs5ve \ Downloads \ OpenCV статические \ статические \ OpenCV \ встроенный 32-экстра \ установки \x86\vc14\staticlib
Добавлены следующие значения в дополнительных зависимостях:-
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': нет такого файла или каталога
Я добавил "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" в каталогах "Включить". Но после этого я получаю следующую ошибку:- Невозможно открыть включаемый файл: 'malloc.h': нет такого файла или каталога
1 ответ
Проблема в том, что OpenCV имеет множество зависимостей и инструкций, которые просто недоступны в Анклаве (например, Intel SSE или стандартное pthreading).
Так что прямая связь не возможна, но вы всегда можете ее портировать - хотя я должен сообщить, что это довольно масштабная работа, поэтому вы должны подумать, стоит ли она того или нет.