Полностью отключить OpenCL в OpenCV

Я хочу создать статическую версию OpenCV (3) с отключенным OpenCL. Для этого я использую

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?

Спасибо и наилучшими пожеланиями


person Andreas Unterweger    schedule 09.06.2015    source источник


Ответы (1)


OpenCV не очень хорошо документирует свои параметры сборки, но мы можем довольно хорошо увидеть их из их CMakeLists.txt:

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

Я бы посоветовал также отключить WITH_OPENCLAMDFFT, WITH_OPENCLAMDBLAS и WITH_VA_INTEL.

person Chris Kitching    schedule 03.03.2016
comment
Кажется, что это изменилось с тех пор, как я опубликовал проблему выше (используя версию 3.0.0). В любом случае, спасибо за указание на это - я не думал об отключении этих опций. Я уже получил имена параметров из CMakeLists из-за довольно плохой документации по ним, но очень сложно определить, какие именно зависимости существуют, не копая очень глубоко. - person Andreas Unterweger; 07.03.2016