Option to avoid usage of emmintrin.h file

Is there a configuration during build process that can be disabled to avoid the usage of 'emmintrin.h file?

please, - os, opencv version ?

why do you need to do this ?

OS: Ubuntu 20.04
OpenCV Version: 4.2.0

I am trying to use OpenCV in Intel SGX. Getting this:

In file included from /home/azureuser/test3/helloworld/enclave/enc.cpp:9:
In file included from /usr/local/include/opencv4/opencv2/opencv.hpp:52:
In file included from /usr/local/include/opencv4/opencv2/core.hpp:52:
In file included from /usr/local/include/opencv4/opencv2/core/cvdef.h:322:
/usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h:200:12: fatal error: 'emmintrin.h' file not found
#  include <emmintrin.h>
           ^~~~~~~~~~~~~
1 error generated.
make[2]: *** [enclave/CMakeFiles/enclave.dir/build.make:73: enclave/CMakeFiles/enclave.dir/enc.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:202: enclave/CMakeFiles/enclave.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

when trying to build the project.

outdated, waste of anyone’s time.
please use latest github release (4.5.5)

that’s only the first in a long row

idk, if opencv is useful at all without SSE2, but you can try to use a few cmake flags:

CPU_BASELINE=""
CPU_DISPATCH=""
CV_ENABLE_INTRINSICS=OFF
CV_DISABLE_OPTIMIZATION=ON

then, you will also have to tweak / disable some 3rd party image codecs like webp, openjpeg

I will try this, Thanks.

are you sure that you mean “intel SGX”?

Yes, I am trying to use OpenCV inside SGX- Enclave.

1 Like