尝试安装 Opencv 3.1 时出现 Cmake 错误

尝试安装 Opencv 3.1 时出现 Cmake 错误

我想在我的 Ubuntu 15.10 上编译并安装 OpenCV 3.1。我按照本教程。在我运行 cmake 命令后,安装开始,但过程返回错误,并且我的 UBUNTU 中的所有文件都变成只读!

这是输入日志:http://pastebin.com/vJz0U7es

我不太了解 cmake。有人能帮助我吗?

答案1

这是 16.04 的一个已知问题。错误报告已经填写完毕,应该很快就会修复。目前,我通过以下方式修复了它:

sudo -i
mkdir /usr/include/ffmpeg
cd /usr/include/ffmpeg
ln -sf /usr/include/x86_64-linux-gnu/libavcodec/*.h ./
ln -sf /usr/include/x86_64-linux-gnu/libavformat/*.h ./
ln -sf /usr/include/x86_64-linux-gnu/libswscale/*.h ./

基本上,您在 /usr/include/ffmpeg 中创建指向目录中所有 .h 文件的链接:/usr/include/x86_64-linux-gnu/libavcodec/ /usr/include/x86_64-linux-gnu/libavformat/ /usr/include/x86_64-linux-gnu/libswscale/

我设法通过使用以下 cmake 命令避免了 sys/videoio.h 问题和 linux/videodev.h 问题(请注意,您必须签出 opencv_contrib 并根据您的情况调整下面的相对路径)。您还必须运行此 cmake 命令两次,否则 Python3 部分由于某种原因不会被选中。我不知道为什么下面的 cmake 命令可以修复我的问题,我只是在经过长时间的调查后才发现这一点(也许使用下面的 cmake 命令甚至不需要上面的修复,我不知道)。

cmake \
  -D CMAKE_BUILD_TYPE=RELEASE \
  -D CMAKE_INSTALL_PREFIX=/usr/local \
  -D WITH_TBB=ON \
  -D WITH_V4L=ON \
  -D WITH_QT=ON \
  -D WITH_OPENGL=ON \
  -D WITH_CUDA=ON \
  -D ENABLE_FAST_MATH=1 \
  -D CUDA_FAST_MATH=1 \
  -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
  -D WITH_CUBLAS=1 \
  -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
  -D BUILD_TESTS=OFF \
  -D BUILD_PERF_TESTS=OFF \
  -D BUILD_OPENCV_PYTHON3=1 \
  -D PYTHON3_EXECUTABLE=$(which python3) \
  -D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
  -D PYTHON3_LIBRARIES=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

答案2

第 86 行表示您缺少 ffmpeg 库中的 libavformat 标头:

home/guilherme/opencv/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:29:致命错误:ffmpeg/avformat.h:没有此文件或目录

在编译之前你需要安装几个软件包,它们是Linux 安装说明中列出

相关内容