OpenCV в зависимости от несуществующей символьной ссылки от
/usr/lib/libz.so
Я не могу установить OpenCV 3.0.0 3.1.0 или 3.2.0 на моем рабочем компьютере, которому установили Cuda. На новой установке Ubuntu 16.04, следующей инструкциям в этой ссылке OpenCV, установленный превосходный без Cuda (и изменяющей версию, загруженную, чтобы быть 3.0.0.
Теперь устанавливая на моем рабочем компьютере я продолжаю получать эту ошибку после выполнения делания после создания make-файла (cmake). Команда cmake работает, команда делают, впоследствии базовая проблема.
cmake -D CMAKE_BUILD_TYPE=RELEASE -D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON \
-D WITH_QT=OFF -D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_OPENGL=OFF -D WITH_V4L=ON -D WITH_CUDA=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_TBB=ON ..
make
Ошибка:
make[2]: *** No rule to make target '/usr/lib/libz.so', needed by 'lib/libopencv_core.so.3.2.0'. Stop.
CMakeFiles/Makefile2:1283: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
После контроля/usr/lib/libz.so это - повисшая символьная ссылка при просмотре, где он, как предполагается, связывается с.
ls /usr/lib/libz.so -lhA
lrwxrwxrwx 1 root root 31 May 9 09:29 /usr/lib/libz.so -> /usr/lib/i386-linux-gnu/libz.so
cd /usr/lib/i386-linux-gnu/
julian@ThinkPad-W540:/usr/lib/i386-linux-gnu$ ls
audit libformw.so.5.9 libpanelw.so.5.9
gconv libgpm.so.2 libpcreposix.so.3
libcuda.so libmenuw.so.5 libpcreposix.so.3.13.2
libcuda.so.1 libmenuw.so.5.9 libtic.so.5
libcuda.so.375.66 libnvidia-opencl.so.1 libtic.so.5.9
libdb-5.3.so libnvidia-opencl.so.375.66
libformw.so.5 libpanelw.so.5
Я попытался переустановить пакет libz, находится в
sudo apt-get install zlib1g-dev --reinstall
и все еще не имейте никакой удачи с той же ошибкой
*** No rule to make target '/usr/lib/libz.so', needed by 'lib/libopencv_core.so.3.2.0'. Stop.
Таким образом, я на этапе ощущения себя полностью застрявшим, я попытался связать/usr/lib/libz.so с cuda файлами в/usr/lib/i386-linux-gnu, поскольку необходимое/usr/lib/i386-linux-gnu/libz.so не там и там после не переустанавливает zlib.
Любая справка ценилась бы.
У меня была та же проблема.
Кажется, что символьная связь libz.so в/usr/lib разорвана.
Я удалил ту символьную ссылку и создал новую ссылку на каталог, где мой libz.so расположен и выполнен make
снова и все работало как ожидалось.