Итак, получается, что мне не нужно использовать драйверы разработчика для компиляции OpenCV!
Я как-то испортил свои программные источники, так что я больше не обновлялся ppa:ubuntu-x-swat/x-updates
. Когда я установил, что я был в состоянии обновить свои драйверы NVIDIA в 304.43
с 295.49
. Я думаю, что это могло быть решающим фактором для компиляции OpenCV, хотя мне также пришлось изменить один make-файл, чтобы он работал.
Если кто-то заинтересован в том же, я в основном следовал инструкциям здесь . Перефразировать:
sudo apt-get install
следующие зависимости модуля, если у вас их еще нет:libopencv-dev build-essential checkinstall cmake pkg-config libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libv4l-dev
Загрузите последнюю версию OpenCV отсюда, а затем:
tar -xvf OpenCV-<version#>.tar.bz2 cd OpenCV-<version#>/ mkdir build cd build
Запустите,
cmake
чтобы настроить файл сборки. Вам нужно будет передатьcmake
набор параметров, чтобы указать, как вы хотите, чтобы OpenCV был собран. Точные параметры будут зависеть от вашей системы - вы можете получить представление о доступных параметрах, посмотрев на них../CMakeLists.txt
. Точная команда, которую я использовал, была:cmake -D WITH_QT=ON -D WITH_XINE=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=ON BUILD_TESTS=ON ENABLE_SSE3=ON ENABLE_SSE4.1=ON ENABLE_SSE4.2=ON WITH_CUDA=ON ..
У меня были особые проблемы, когда он компилировался с поддержкой CUDA runtime (
WITH_CUDA=ON
), отсюда и исходный вопрос о драйверах.cmake
создаст файл с именемCMakeCache.txt
. Я обнаружил, что мне пришлось изменить этот файл, как описано здесь, чтобы избежать ошибок при связыванииlibcuda.so
.Найдите строку, которая начинается:
CUDA_CUDA_LIBRARY:FILEPATH=
И добавить путь
libcuda.so
, в моем случае:CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current/libcuda.so
Теперь вы должны иметь возможность запустить
make
для компиляции (занимает некоторое время ...), а затемsudo make install
установить
Я надеюсь, что кто-то найдет это полезным.