完全禁用OpenCV中的OpenCL

时间:2015-06-09 09:05:21

标签: opencv opencl static-libraries opencv3.0

我想在禁用OpenCL的情况下构建静态版本的OpenCV(3)。为此,我正在使用

cmake -D WITH_OPENCL=OFF -D BUILD_SHARED_LIBS=OFF

编译OpenCV时,以及其他参数(禁用我不需要的其他模块)。 cmake调用的输出包括以下行

  

- 使用OpenCL:否

如果我理解正确,则表示OpenCL已被禁用。

现在,当链接到OpenCV的编译版本时,我收到以下消息(我编辑了路径):

  

[Redacted] /lib/libopencv_core.a(ocl.cpp.o):在函数`initOpenCLAndLoad'中:   ocl.cpp :(。text.initOpenCLAndLoad + 0x2b):警告:使用' dlopen'在静态链接的应用程序中,在运行时需要来自用于链接的glibc版本的共享库

我知道这个消息意味着什么,但我对它的来源感到困惑 - 为什么在编译的OpenCV库中有OpenCL调用代码?是否还需要设置其他选项才能完全禁用OpenCL?

谢谢你,以及最好的问候

1 个答案:

答案 0 :(得分:2)

OpenCV并不擅长记录其构建选项,但我们可以从他们的CMakeLists.txt中很好地看到它们:

https://github.com/Itseez/opencv/blob/master/CMakeLists.txt#L208

我建议关闭WITH_OPENCLAMDFFTWITH_OPENCLAMDBLASWITH_VA_INTEL