Добавление библиотек OpenCV в SGX-Enclave Project - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь добавить 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 в проект: -

  1. Сгенерировал статическую библиотеку OpenCVиспользуя CMake,

  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 Files (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_li00.jbopencv_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 Ответ

0 голосов
/ 15 июня 2018

Проблема заключается в том, что OpenCV имеет множество зависимостей и инструкций, которые просто недоступны в Анклаве (например, Intel SSE или стандартное pthreading).

Так что прямое связывание невозможно, но вы могли бывсегда переносите его - хотя я должен посоветовать, что это довольно масштабная работа, поэтому вы должны подумать, стоит ли она того или нет.

...