Chcę zbudować statyczną wersję OpenCV (3) z wyłączonym OpenCL. Aby to zrobić, używamWyłącz OpenCL w OpenCV całkowicie
cmake -D WITH_OPENCL=OFF -D BUILD_SHARED_LIBS=OFF
podczas kompilacji OpenCV, wśród innych parametrów (które wyłączają inne moduły, że nie potrzebujesz). Wyjście rozmowy cmake zawiera następujący wiersz
- Używaj OpenCL: NIE
które, jeśli rozumiem go poprawnie, oznacza to, że OpenCL jest wyłączone.
Teraz, gdy powiązanie przeciwko skompilowanej wersji OpenCV, pojawia się następujący komunikat (I redacted ścieżkę):
[redacted] /lib/libopencv_core.a (ocl.cpp.o): w funkcji `initOpenCLAndLoad '. ocl.cpp :(text.initOpenCLAndLoad + 0x2b): ostrzeżenie: Używanie 'dlopen' w statycznie połączonych aplikacji wymaga przy starcie współdzielone biblioteki z wersji glibc wykorzystywane do łączenia
I jestem świadomy tego, co oznacza komunikat, ale jestem zdezorientowany jego źródłem - dlaczego w kompilacji jest kod wywołujący OpenCL d biblioteka OpenCV? Czy jest jakaś inna opcja, którą muszę ustawić, aby OpenCL był całkowicie wyłączony?
Dziękuję i pozdrawiam
Wygląda na to, że uległo to zmianie od czasu opublikowania powyższego problemu (w wersji 3.0.0). W każdym razie, dzięki za wskazanie tego - nie myślałem też o wyłączeniu tych opcji. Mam już nazwy opcji od CMakeLists ze względu na dość słabą dokumentację na nich, ale bardzo trudno jest wywnioskować, jakie zależności są dokładnie bez głębokiego kopania. –