openMVG编译过程cmake --build . --target install报错!
cmake --build . --target install命令运行出错
注:因为本文是在ubuntu18.04下出现的问题,所以也只涉及ubuntu18.04的openMVG安装
1.linux安装openMVG流程
在github上的官方安装流程如下:官方流程https://github.com/openMVG/openMVG/blob/master/BUILD.md.
(Compiling on Linux)此处只做搬运,更详细安装请进入原作者网址查看!
1.1 Install the required external libraries.
sudo apt-get install libpng-dev libjpeg-dev libtiff-dev libxxf86vm1 libxxf86vm-dev libxi-dev libxrandr-dev
If you want see the view graph svg logs, install Graphviz.
sudo apt-get install graphviz
1.2 Checkout OpenMVG.
git clone --recursive https://github.com/openMVG/openMVG.git
mkdir openMVG_Build && cd openMVG_Build
1.3 Configure and build
cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/
cmake --build . --target install
Run tests using make or ctest (if requested in the CMake command line with -DOpenMVG_BUILD_TESTS=ON )
make test
ctest --output-on-failure -j
2.安装过程出现的问题及解决流程
不想听唠叨的直接跳到第三步
0.
等到自己真正安装的时候才发现,只需要按照流程做到第1.3步的第二条命令就行了,甚至第1.3步的第二条命令不用跑到100%就可以。
进入正题
1.
详细错误已经没办法再找到了,具体描述一下是运行第1.3步的第二条命令时运行到44%
左右时报错,出现的问题是Eigen某个头文件相关的错误,此时我的Eigen版本为3.2.X(或者更低版本,记不清了);
2.
一开始我以为是openMVG的问题,因为我事先已经成功装好了openMVS,所以我没有去怀疑Eigen的问题,几经尝试没有解决;
3.
没有办法那就只能是Eigen的问题了,我接着在另一台同样配好openMVS的虚拟机(系统同样为ubuntu18.04)上进行openMVG安装尝试,结果是成功的;
4.
由于成功跑通时Eigen的版本是3.3.4,我想着是不是版本比较低,需要换一个更高的版本,我就再原来的环境里面下载了3.3.4和3.3.8两个版本,结果可能由于我安装的问题,这两个版本并没有很好的装上,搞得我的Eigen成了3.3.4、3.3.8和原来版本这几个版本的混合版,当然就不能用了;
5.
我就寻找相关网页想着把Eigen给删掉重新装。因为本人是个小白,最简单的想法就是先卸掉再重新装,结果不仅没装好,还按照某篇不知名博客不小心删掉重要文件,导致运行第1.3步的第二条命令时直接报错,运行不成功,聋子又成了瞎子,没有办法找回少点的文件,cmake功能也因此出现问题,只能重装系统;
6.
重装系统之后,发现问题,解决问题,直接搜切换Eigen版本的方法,找到了方法,
————————————————
原文链接:https://blog.csdn.net/qq_42668426/article/details/111993607.
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42668426/article/details/111993607
————————————————
7.
参考此博主的方法,结合Eigen下载和编译的方法即可完成Eigen版本的切换,
Eigen下载和编译的方法如下:
//默认装的是3.2的版本,切换的是3.3的版本
git clone https://gitlab.com/libeigen/eigen.git --branch 3.3
mkdir eigen_build && cd eigen_build
cmake . ../eigen
make && sudo make install
cd ..
8.
注意,完成到3.3的版本切换之后,就可成功进行,第1.3步的第二条命令的编译,不过也只是运行到63%
左右,不用紧张,后面的是生成一个什么target的,不知道对什么有影响,我只是接着使用
sudo make install
运行没报错!
我就结束了整个的编译安装过程。
3.总结
不想听唠叨的到这里
0.
总之,就是Eigen的版本不对,openMVS和openMVG需求的Eigen版本不同,需要进行切换,(移动原先的、新建文件夹、移进去、新版本编译安装)版本切换到不是太新3.3就可解决问题。
版本切换参考博客:
原文链接:https://blog.csdn.net/qq_42668426/article/details/111993607.
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1.
之后再进行编译安装,顺利通过!