Деактивирайте напълно 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, използвана за свързване

Наясно съм какво означава съобщението, но съм объркан от източника му - защо има извикващ OpenCL код в компилираната OpenCV библиотека? Има ли друга опция, която трябва да настроя, така че 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