COLMAP安裝遇到的報錯


1前提

已經安裝了ancoda ,這個是個巨坑,裝了aconda嚴重影響后面安裝

2-0 裝eigen3

2-1裝ceres

編譯ceres時:error: ‘integer_sequence’ is not a member of ‘std‘錯誤

https://blog.csdn.net/qq_41586768/article/details/107541917

按照上安裝的ceres庫版本,以及網上大多數教程安裝的版本都會和eigen3(3.3.7)有沖突,編譯時會報如下錯誤:

這里換成1.14.0版本的ceres問題得以解決

 

2-2在編譯時對libtiff4.0的未定義引用(Ubuntu 16.04)

5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFReadEXIFDirectory@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFFieldReadCount@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFSetTagExtender@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFCurrentDirectory@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFReadTile@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFSetDirectory@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'

 

最新更新:

根本不是什么5。0和4。0的本版問題,是因為aconda環境中的libtiff干擾了ubutu1604本身的libtiff,導致編譯出問題。

1要么就先不要裝acoda 

2裝了acoda就先從環境中移除路徑重新編譯

  • 2-1 把aconda的文件夾名字隨便改下,例如隨便加個字母這樣系統就找不到了
  • 2-2 可以在系統路徑暫時刪除aconda的路徑,編譯完
  • 先把保存一份 bashrc

    然后修改去掉aconda的路徑:

    sudo gedit  ~/.bashrc
    (或者雙擊直接修改)

    然后把 最后 Anaconda 的路徑前面加 # 給注釋掉:

    # export PATH=/path/to/anaconda/bin:$PATH

    然后:

    source ~/.bashrc

還不行的話,再次基礎上執行后面(我還沒有嘗試,我直接重新裝了系統)

如果尚未安裝所需的軟件包,請安裝它。如果具有所需的文件,但是路徑不正確,則可以按照以下步驟進行操作。

就手動找到當前系統所有的libtiff.so路徑

locate libtiff.so

 

 

(如果aconda還在系統中,這里會有很多個記錄)

找到依賴文件后,下一步是用於替換文件其他位置的庫文件的路徑

找到依賴庫

ldd /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so

 

 

 可以看到實際依賴的庫的位置

手動逐個替換庫(如果有多個位置的話),直到可以用的那個成功

您可以看到要替換的路徑。有時系統中有多個可用項目,如果不確定要使用哪個項目,則可以嘗試一下,直到找到正確的文件為止。

 要創建軟鏈接,源文件位於ln命令的前面,后跟相關位置。 例如,

ln -sf /var/lib/docker/aufs/diff/07382a150bf28b01a386095ec78a8d2e92fbf670393b3bd16b6f8fbc2d159ae1/usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.5 

 最終重新編譯,一般即可解決。 祝好運

 

 

-------------------------------------------------------------------------------(有問題的記錄)------------------------------------------------------------------------------------

原來網址:

https://stackoom.com/question/34XM2/CMake-%E9%93%BE%E6%8E%A5libfreeimage-libtiff%E6%97%B6%E5%87%BA%E9%94%99

 

 

 

 

 

 

 

舊有的記錄:

https://github.com/colmap/colmap/issues/188

需要的是4.0但是最新的是5.0

手動下載4.0源碼編譯

安裝好的

 

 

重新編譯colmap工程

 

 

 

其他說明: 

整個問題就是,因為提前裝了anaconda3,他的路徑和庫干擾了系統自身默認的庫和路徑,導致安裝編譯的時候找庫有問題,所以要去掉anaconda3的影響。

1 要么直接把anaconda3名字改了,導致找不到這個,也就不再用里面的配置。

 

 

完啦了再改回來

2 要么注銷了aconda環境,安裝完再回來(這個比較復雜,不建議)

 

 

3 camke的時候直接指定用系統的庫而不是去adonda下面找(測試 cmake不再報錯,但是后面make回報錯)

 

 

SET(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/cmake")

  

 

 

 

`TIFFReadDirectory@LIBTIFF_4.0‘未定義的引用 

  https://blog.csdn.net/zhh1997423/article/details/106297427?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.opensearch_close&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.opensearch_close

“undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'” 問題解決方法

libtiff管網上下載 tiff-4.0.4.tar.gz壓縮包安裝即可。安裝方法如下:

    解壓tar -zxvf tiff-4.0.4.tar.gz
    進入tiff目錄
    ./configure
    make
    make install

網上有介紹通過sudo apt-get install libtiff4-dev安裝,但是運行該命令后,提示libtiff4-dev已經被libtiff5-dev替代,只可安裝libtiff5-dev,安裝后並未解決問題。

 

解決方法:

        在安裝與tiff有關的包,如opencv時候,把conda的系統引用從系統路徑里面消除掉,然后再進行安裝.

ctrl+h 顯示隱藏

 

先把保存一份 bashrc

然后修改去掉aconda的路徑:

sudo gedit  ~/.bashrc
(或者雙擊直接修改)

然后把 最后 Anaconda 的路徑前面加 # 給注釋掉:

# export PATH=/path/to/anaconda/bin:$PATH

然后:

source ~/.bashrc


 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM