我想在禁用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?
谢谢你,以及最好的问候
答案 0 :(得分:2)
OpenCV并不擅长记录其构建选项,但我们可以从他们的CMakeLists.txt中很好地看到它们:
https://github.com/Itseez/opencv/blob/master/CMakeLists.txt#L208
我建议关闭WITH_OPENCLAMDFFT
,WITH_OPENCLAMDBLAS
和WITH_VA_INTEL
。