編譯OpenMVS幾個坑

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文件夾下。就會不會出問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容