Ok, acontece que eu não preciso usar os drivers do desenvolvedor para compilar o OpenCV, afinal de contas!
De alguma forma, eu estraguei minhas fontes de software e não atualizei mais ppa:ubuntu-x-swat/x-updates
. Quando consertei, consegui atualizar meus drivers NVIDIA para 304.43
de 295.49
. Acho que esse pode ter sido o fator crítico para compilar o OpenCV, embora eu também precise modificar um makefile para que ele funcione.
Se alguém estiver interessado em fazer o mesmo, eu basicamente segui as instruções aqui . Parafraseando:
-
sudo apt-get install
das seguintes dependências do módulo, se você ainda não as tiver: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
-
Faça o download do último OpenCV em aqui , então:
tar -xvf OpenCV-<version#>.tar.bz2 cd OpenCV-<version#>/ mkdir build cd build
-
Execute
cmake
para configurar um arquivo de compilação. Você precisará passarcmake
de um conjunto de opções para especificar como você gostaria que o OpenCV fosse construído. As opções exatas dependerão do seu sistema - você pode ter uma ideia de quais opções estão disponíveis olhando../CMakeLists.txt
. O comando exato que usei foi: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 ..
Eu tive um problema especial para compilar com o suporte ao tempo de execução CUDA (
WITH_CUDA=ON
), daí a pergunta original sobre os drivers. -
cmake
criará um arquivo chamadoCMakeCache.txt
. Descobri que eu tinha que modificar esse arquivo como descrito aqui para evitar um erro ligandolibcuda.so
.Encontre a linha que começa:
CUDA_CUDA_LIBRARY:FILEPATH=
E anexe o caminho para
libcuda.so
, no meu caso:CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current/libcuda.so
-
Agora você deve executar
make
para compilar (demora um pouco ...) e, em seguida,sudo make install
para instalar
Espero que alguém ache isso útil.