完全禁用 OpenCV 中的 OpenCL
Disable OpenCL in OpenCV completely
我想在禁用 OpenCL 的情况下构建 OpenCV (3) 的静态版本。为此,我使用
cmake -D WITH_OPENCL=OFF -D BUILD_SHARED_LIBS=OFF
编译 OpenCV 时,除其他参数外(禁用我不需要的其他模块)。 cmake 调用的输出包括以下行
-- Use OpenCL: NO
如果我理解正确的话,这意味着 OpenCL 被禁用了。
现在,当链接到编译版本的 OpenCV 时,我收到以下消息(我编辑了路径):
[Redacted]/lib/libopencv_core.a(ocl.cpp.o): In function `initOpenCLAndLoad':
ocl.cpp:(.text.initOpenCLAndLoad+0x2b): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
我知道消息的含义,但我对其来源感到困惑 - 为什么在编译的 OpenCV 库中有调用 OpenCL 的代码?我是否需要设置任何其他选项才能完全禁用 OpenCL?
谢谢你,并致以最诚挚的问候
OpenCV 不太擅长记录其构建选项,但我们可以从他们的 CMakeLists.txt:
中很好地看到它们
https://github.com/Itseez/opencv/blob/master/CMakeLists.txt#L208
我建议同时关闭 WITH_OPENCLAMDFFT
、WITH_OPENCLAMDBLAS
和 WITH_VA_INTEL
。
我想在禁用 OpenCL 的情况下构建 OpenCV (3) 的静态版本。为此,我使用
cmake -D WITH_OPENCL=OFF -D BUILD_SHARED_LIBS=OFF
编译 OpenCV 时,除其他参数外(禁用我不需要的其他模块)。 cmake 调用的输出包括以下行
-- Use OpenCL: NO
如果我理解正确的话,这意味着 OpenCL 被禁用了。
现在,当链接到编译版本的 OpenCV 时,我收到以下消息(我编辑了路径):
[Redacted]/lib/libopencv_core.a(ocl.cpp.o): In function `initOpenCLAndLoad': ocl.cpp:(.text.initOpenCLAndLoad+0x2b): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
我知道消息的含义,但我对其来源感到困惑 - 为什么在编译的 OpenCV 库中有调用 OpenCL 的代码?我是否需要设置任何其他选项才能完全禁用 OpenCL?
谢谢你,并致以最诚挚的问候
OpenCV 不太擅长记录其构建选项,但我们可以从他们的 CMakeLists.txt:
中很好地看到它们https://github.com/Itseez/opencv/blob/master/CMakeLists.txt#L208
我建议同时关闭 WITH_OPENCLAMDFFT
、WITH_OPENCLAMDBLAS
和 WITH_VA_INTEL
。