CMake:?
不需要Breakpad,但需要安裝Boost ,CGAL, EIGEN, VCGLIB (官網(wǎng)下載)
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的路徑需要核實一下??赡苡性O在子文件夾下但是實際需要設置成上一層

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。文件名會出現(xiàn)個 -s影響Link的成功
如果找不到Link的庫
在Linker的input里面additional dependencies里面加這個.lib 文件的絕對路徑。在General里面加lib文件夾的路徑
補:
以為編譯成功了但發(fā)現(xiàn)OpenMVS里面沒有成功編譯libjpeg。試了很多方法發(fā)現(xiàn)并不能成功編譯。
https://github.com/stohrendorf/libjpeg-cmake?
可以從上面這個鏈接中下載libjpeg-cmake的源碼用cmake編譯。在build的文件夾中可以找到libjpeg.lib這個文件。把這個文件的路徑放到OpenMVS的CMake文件夾下。就會不會出問題。