虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程

先说我是VMWARE装的虚拟机ubuntu16.04版本。从头开始记录配置过程。请看完再实施,我是5.6完成的配置请尽量看近期的配置教程。有一些文件,ceres1.14.0和cmake3.8以及opencv3.2.0和一些在下面编译中需要的文件我整理好了,万一哪个下载不下来,直接复制过去用就行。或者下面也能有单独的下载链接,自己下也可以。

注意:虚拟机没有cuda的时候按照这个配置!!!双系统不行,因为我后来用双系统和cuda重新搭建不可以,所以如果你要用双系统加cuda不可用这个.

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的清华源,很快!!!

二.安装cmake3.8.2

下载地址:https://github.com/Kitware/CMake/releases/tag/v3.8.2

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第1张图片

 

再解压,进到解压后的文件夹。右键打开终端,运行这个:

./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版本

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第2张图片

 

那就到usr/local/bin里

Sudo rm   然后把里面三个东西一起拖进来回车,就删了。

再到刚刚编译的cmake文件夹里的bin文件

Sudo  cp  把三个一起拖进来  再空格  再把刚刚的usr/local/bin这个文件夹拖进来,就好了!
cmake –version

 

结束!

三. 安装opencv3.2.0

1、 下载opencv3.2.0安装包,进入官网: http://opencv.org/releases.html

选择第四页的 sources下载opencv 3.2.0 .zip 。

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第3张图片

 

2、 安装依赖库

之前由于安装过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
 

3、将安装包放在目录下,右键提取解压,再执行下面命令:

我遇到的问题1:

camke遇到的,先改了,如果运行完了camke记得删除原来的build文档。

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

 

 

问题2:

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)就结束了。

四.编译openmvg!

https://github.com/openMVG/openMVG/blob/master/BUILD.md#linux

就按照网网步骤搞

注意:

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第4张图片

问题1:

cmake --build . --target install

这步以后:

  file INSTALL cannot make directory   "/usr/local/include/openMVG_dependencies": Permission denied

前面加上sudo!就是:   sudo cmake --build . --target install

之后就可以 make text

五. openmvs

费劲的来了:

https://github.com/cdcseacave/openMVS/wiki/Building

我按照官网教程(上面)装的遇到奇奇怪怪问题,因为编译的附加依赖版本要求已经很旧,但是源码却更新了。就不能按照原来的垃圾版本要求

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第5张图片

eigrn按照官网,就用3.2.10版本,用清华源挺快的。

问题1:

你如果不是全新的系统,就是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’

总有乱七八糟问题,就重装系统了,所以提醒大家多看看经验帖再编译。

问题2:

这步有的人有这个问题:

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

问题3:

官网这个链接挂了,就直接下载ceres1.14.0就行,

https://github.com/ceres-solver/ceres-solver/releases

下载解压完把文件夹名字改成ceres-solver其余步骤继续,都一样。

下载地址官网有。或者文章开头链接有。

git clone https://ceres-solver.googlesource.com/ceres-solver ceres-solver

问题4:

不要像下图那么编译!因为会出错!但是我还不知道怎么改!

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第6张图片

记得指定vcglib位置,我的是这样:

make . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/home/ayu/桌面/SFM/openmvs/vcglib"

问题5;

最后一步了!

make -j2 && sudo make install

如果遇到下面这个问题:

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第7张图片

因为上一步加了这句话:DBUILD_SHARED_LIBS=ON

删掉就行,可能是Boost 版本太低了。但是我没再试了。就删掉就完事了

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第8张图片

openMVS_Build/bin下生成了这些文件那就是编译成功。

虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程_第9张图片

结束,有问题再一起商讨。

 

你可能感兴趣的:(虚拟机ubuntu16.04 编译openmvg和openmvs 详细过程)