【问题标题】:Disable OpenCL in OpenCV completely在 OpenCV 中完全禁用 OpenCL
【发布时间】:2015-08-24 00:11:47
【问题描述】:

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

cmake -D WITH_OPENCL=OFF -D BUILD_SHARED_LIBS=OFF

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

-- 使用 OpenCL:否

如果我理解正确,这意味着 OpenCL 已禁用。

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

[已编辑]/lib/libopencv_core.a(ocl.cpp.o):在函数“initOpenCLAndLoad”中: ocl.cpp:(.text.initOpenCLAndLoad+0x2b): 警告:在静态链接的应用程序中使用“dlopen”需要在运行时使用 glibc 版本中用于链接的共享库

我知道该消息的含义,但我对其来源感到困惑 - 为什么编译的 OpenCV 库中有调用 OpenCL 的代码?是否需要设置任何其他选项才能完全禁用 OpenCL?

谢谢你和最好的问候

【问题讨论】:

    标签: opencv opencl static-libraries opencv3.0


    【解决方案1】:

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

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

    我建议同时关闭WITH_OPENCLAMDFFTWITH_OPENCLAMDBLASWITH_VA_INTEL

    【讨论】:

    • 自从我发布上面的问题(使用版本 3.0.0)以来,这似乎已经改变了。无论如何,感谢您指出这一点 - 我也没有考虑禁用这些选项。我已经从 CMakeLists 中获得了选项名称,因为它们的文档相当差,但是如果不深入挖掘,很难推断出到底有哪些依赖关系。
    猜你喜欢
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2014-04-22
    • 2012-05-03
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多