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文件夹下。就会不会出问题。