先说我是VMWARE装的虚拟机ubuntu16.04版本。从头开始记录配置过程。请看完再实施,我是5.6完成的配置请尽量看近期的配置教程。有一些文件,ceres1.14.0和cmake3.8以及opencv3.2.0和一些在下面编译中需要的文件我整理好了,万一哪个下载不下来,直接复制过去用就行。或者下面也能有单独的下载链接,自己下也可以。
https://download.csdn.net/download/qq_38185927/12394544
https://blog.csdn.net/hc1017/article/details/80941680?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1
我选的16.04的清华源,很快!!!
下载地址:https://github.com/Kitware/CMake/releases/tag/v3.8.2
再解压,进到解压后的文件夹。右键打开终端,运行这个:
./bootstrap
注:因为自带了gcc version 5.4.0,如果装cmake有错:
Error when bootstrapping CMake:
Cannot find appropriate C++ compiler on this system.
Please specify one using environment variable CXX.
这是因为没有安装g++编译器使用命令
sudo apt-get install g++
然后再运行一次。
./bootstrap
再:
make
sudo make install
最后检查版本:
cmake --version
因为我的虚拟机自带的cmake3.5,现在还显示3.5版本
那就到usr/local/bin里
Sudo rm 然后把里面三个东西一起拖进来回车,就删了。
再到刚刚编译的cmake文件夹里的bin文件
Sudo cp 把三个一起拖进来 再空格 再把刚刚的usr/local/bin这个文件夹拖进来,就好了!
cmake –version
结束!
选择第四页的 sources下载opencv 3.2.0 .zip 。
之前由于安装过2.4.9的opencv,再安装依赖项就总是有无法下载安装的问题,换源也不好使,没办法就重装系统了。所以安之前查好到底安哪个版本,不要安了再卸载。
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install --assume-yes libopencv-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev
sudo apt-get install libgtk-3-dev
sudo apt-get -y install libgstreamer-plugins-base1.0-dev
sudo apt-get -y install libgstreamer1.0-dev
sudo apt-get -y install libavresample-dev
sudo apt-get -y install libgphoto2-dev
sudo apt-get install libopenblas-dev
sudo apt-get install doxygen
ICV: Failed to download ICV package: ippicv_linux_20151201.tgz. Status=1;"Unsupported protocol"
解决:
替换opencv-3.2.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b\下面的压缩包即可
原来的删了。
这个文件开头的下载链接里有,自己也可以下,但是如果没有VPN那链接会挂。
https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz
cd opencv-3.2.0
mkdir build&&cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
sudo make -j12
因为我是在虚拟机上安装opencv不涉及cuda的问题,虚拟机的显卡是虚拟的!安装不了英伟达的驱动用不了cuda!
fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: No such file or directory #include “LAPACKE_H_PATH-NOTFOUND/lapacke.h”
解决:
sudo apt-get install liblapacke-dev checkinstall
修改opencv-3.2.0/build/opencv_lapack.h:
将:
#include"LAPACKE_H_PATH-NOTFOUND/lapacke.h"
改为:
#include"lapacke.h"
检测版本
pkg-config --modversion opencv
显示版本号对了(3.2.0)就结束了。
https://github.com/openMVG/openMVG/blob/master/BUILD.md#linux
就按照网网步骤搞
注意:
cmake --build . --target install
这步以后:
file INSTALL cannot make directory "/usr/local/include/openMVG_dependencies": Permission denied
前面加上sudo!就是: sudo cmake --build . --target install
之后就可以 make text
费劲的来了:
https://github.com/cdcseacave/openMVS/wiki/Building
我按照官网教程(上面)装的遇到奇奇怪怪问题,因为编译的附加依赖版本要求已经很旧,但是源码却更新了。就不能按照原来的垃圾版本要求
eigrn按照官网,就用3.2.10版本,用清华源挺快的。
你如果不是全新的系统,就是opencv啥的都搞好了,千万不要搞这步。
因为安装的是opencv2.4.9,太低了呀,虽然官网并没说不行,但是最后我就是不行,索性重装系统从头来,先装前面的opencv3.2.
之前会有这个问题:
/home/ayu/桌面/SFM/openMVS/openMVS/libs/Common/Types.h:1488:95: error: ‘Matx_DivOp’ is not a member of ‘cv’
/home/ayu/桌面/SFM/openMVS/openMVS/libs/Common/Types.h:1488:95: error: ‘Matx_DivOp’ is not a member of ‘cv’
总有乱七八糟问题,就重装系统了,所以提醒大家多看看经验帖再编译。
这步有的人有这个问题:
fatal: unable to access 'https://github.com/cdcseacave/VCG.git/': GnuTLS recv error (-54): Error in the pull function.
那就输入这个
git clone git://github.com/cdcseacave/VCG.git vcglib
官网这个链接挂了,就直接下载ceres1.14.0就行,
https://github.com/ceres-solver/ceres-solver/releases
下载解压完把文件夹名字改成ceres-solver其余步骤继续,都一样。
下载地址官网有。或者文章开头链接有。
git clone https://ceres-solver.googlesource.com/ceres-solver ceres-solver
先不要像下图那么编译!因为会出错!但是我还不知道怎么改!
记得指定vcglib位置,我的是这样:
make . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/home/ayu/桌面/SFM/openmvs/vcglib"
最后一步了!
make -j2 && sudo make install
如果遇到下面这个问题:
因为上一步加了这句话:DBUILD_SHARED_LIBS=ON
看openMVS_Build/bin下生成了这些文件那就是编译成功。
结束,有问题再一起商讨。