1. 程式人生 > >openMVG 安裝注意事項

openMVG 安裝注意事項

Windows 安裝注意事項:

問題1:

 openMVG 預設使用的Eigen 是安裝在C盤,因此需要管理員許可權下開啟VS 編譯;
 或許可以把openMVG預設使用的Eigen設定為我們D盤自己安裝的Eigen,這個還沒有試。



問題2:
openMVG : debug版生成的庫,和release 版生成的庫 ,庫名都一樣。
因此: 如果先編譯Debug 版,後編譯Release, release版的庫會覆蓋Debug庫; 反之,類似;
因此,自己工程是Release 版時,要連結Release 版的openMVG, 是Debug 版時,要連結Debug 版的openMVG。
即使給openMVG Debug生成的庫名後加d,然後生成release版,自己的工程再生成Debug 版時,連結依然mismatch,release版編譯成功。

根據:https://github.com/openMVG/openMVG/issues/905 的意思是,需要建兩個build,兩個install,還沒試。

Ubuntu 安裝注意事項:

1. 由於OpenMVG 使用了大量的third_party ,避免後面的版本庫之間的匹配, github 上作者推薦安裝到自己的一個指定地方,避免預設的"/usr/local" 安裝位置

2. 編譯成靜態庫形式

3. 由於Eigen的bug,安裝時, 會把自帶的Eigen 安裝到 /usr/local/include/openMVG/third_party/eigen 下, 所以需要時需要sudo 許可權,或者自己改 openMVG/src/third_party/eigen/CMakeLists.txt (之前按照github上一篇帖子沒改成功,TODO)

4. 使用自帶的Ceres,不要使用之前自己安裝的/usr/local/ 下的ceres, 修改方法:

 openMVG/src/CMakeLists.txt 中  line:270 ,遮蔽找外部的Ceres

  # find_package(Ceres QUIET HINTS ${CERES_DIR_HINTS})    jxl: comment this to use internal ceres

否則後面在執行一些samples 和tools時,遇到類似這樣的錯誤:

*** Error in `./openMVG_main_IncrementalSfM': double free or corruption (out): 0x00007f3b80000ae0 ***
已放棄 (核心已轉儲)