编译OpenMVS几个坑

CMake: 

不需要Breakpad,但需要安装Boost ,CGAL, EIGEN, VCGLIB (官网下载)

CMake中的FIND_PACKAGE会有找不到库的情况需要SET PATH:

Boost:

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "D:/boost")

SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "D:/boost/libs")

FIND_PACKAGE(Boost ${SYSTEM_PACKAGE_REQUIRED})  #COMPONENTS iostreams program_options system serialization

if(Boost_FOUND)

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})

ADD_DEFINITIONS(${Boost_DEFINITIONS} -D_USE_BOOST)

LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})

SET(_USE_BOOST TRUE)

endif()

CGAL:

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "D:/CGAL-5.3/include")

SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "D:/CGAL-5.3/lib")

FIND_PACKAGE(CGAL ${SYSTEM_PACKAGE_REQUIRED}) 

Opencv:

set (OpenCV_DIR D:/Opencv/build)

find_package(OpenCV REQUIRED)

之后会报错的地方在OpenMVS/build/Modules里面的FindCGAL.cmake FindEigen.cmake FindVCG.cmake

在最开头SET 路径:

FindCGAL.cmake:

SET(CGAL_INCLUDE_DIRS "D:/CGAL-5.3/include")

SET(CGAL_LIBRARY_DIRS "D:/CGAL-5.3/lib")

SET(CGAL_DIR "D:/CGAL-5.3")

FindEigen.cmake: 貌似没报错

FindVCG.cmake:

SET (VCG_DIR "D:/vcglib" )

find_path(VCG_DIR "vcg/complex/complex.h"

之后的Cmake应该就没有报错了,除了一些Bin 和 Lib的路径需要核实一下。可能有设在子文件夹下但是实际需要设置成上一层

Visual Studio:

之后就是用Visual Studio开始编译OpenMVS.sln

主要的报错是VCG和CGAL的库找不到: 这个问题在Bin和Lib的路径上解决

首先是安装Boost。

Boost的版本和Visual Studio的版本有关系。我用的VS2022。Boost必须要用1.78.0 Beta。Boost 1.77.0不支持msvc143.最高支持msvc142。

编译boost的过程:https://blog.csdn.net/u013238941/article/details/89453836

生成:libboost_serialization-vc143-mt-x64-1_78.lib 和 libboost_zlib-vc143-mt-x64-1_78.lib

首先用bootstrap.bat -msvc143 生成 b2.exe

之后打开Visual studio -> Tool -> Command Line -> Command Prompt 然后运行:

b2.exe -msvc143 -sZLIB_SOURCE="D:\zlib-1.2.11" 就会生成所有所需的文件。千万不要加 LINK=STATIC。文件名会出现个 -s影响Link的成功

如果找不到Link的库

在Linker的input里面additional dependencies里面加这个.lib 文件的绝对路径。在General里面加lib文件夹的路径


补:

以为编译成功了但发现OpenMVS里面没有成功编译libjpeg。试了很多方法发现并不能成功编译。

https://github.com/stohrendorf/libjpeg-cmake 

可以从上面这个链接中下载libjpeg-cmake的源码用cmake编译。在build的文件夹中可以找到libjpeg.lib这个文件。把这个文件的路径放到OpenMVS的CMake文件夹下。就会不会出问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容