天天看點

CloudCompare 最新版編譯與運作(全網最詳細)

文章目錄

    • 更新介紹
    • 說明
    • 前期準備
      • 1. Visual Studio 2017 version 15.9
      • 2. CMake 的下載下傳
      • 3. PCL 庫(若有需要)
      • 4. PDAL 庫(若有需要)
      • 5. CloudCompare - v2.10.3 (Zephyrus) 源碼
      • 6. QtCreator
      • 7. 其它
    • 編譯 CloudCompare
    • 各階段可能遇到的問題
    • 未來嘗試解決的問題
    • 參考部落格
    • 附錄

更新介紹

為了促進同行業人員(特指 LiDAR 點雲處理人員或相近行業)的技術交流,解決平時開發過程中遇到的技術性問題,部落客建立一個QQ群,歡迎大家積極加入,共同引領點雲行業的快速發展 ~

群名:LiDAR點雲部落

群号:190162198

CloudCompare 最新版編譯與運作(全網最詳細)

說明

對于 CloudCompare 的編譯,網上教程有不少,但是存在以下缺點:

  • 大多數教程寫的含糊其辭,沒有過程記錄,有的甚至草草一筆帶過,說不到重點
  • 使用的 VS 版本老舊,已經無法适應時代需求
  • 使用的 CloudCompare 庫老舊,對應的方法也老舊,殊不知 CC 這兩年變化已經很大了
  • 存在大面積抄襲現象
  • 無法複現編譯成功的過程,沒有 get 到編譯重點
  • 内容過于簡單,沒有進行一個總體彙總,無法供後來者學習
  • 其它

為此,部落客将網上的教程進行一個大彙總,歸納出最核心的配置過程。當然最好的教程還是 CloudCompare 官網提供的教程:

  • 教程網址直達

在編譯前,你需要了解以下内容:

  • 截止發文時,CloudCompare 官網 提供的安裝軟體最新版本為

    CloudCompare 2.11.alpha

    ,Github 倉庫提供的最新版本為

    v2.10.3 (Zephyrus)

  • 最新版的 CloudCompare 的 .las / .laz 檔案的讀取已經由

    liblas

    改為

    pdal

  • 由于 PDAL 涉及到衆多的第三方庫(目測幾十個吧)。是以由于各庫的雜亂,難免會對編譯器産生較高的要求,經實際驗證,編譯 CloudCompare 的最佳 VS 版本為

    VS2017

    及以上。

    當然,如果你不計劃使用讀取 las 的功能,則低版本的 VS 也可以嘗試

  • CloudCompare 還可以用 QtCreator 編譯,但是新版本的 CloudCompare 不建議用 QtCreator 編譯
  • 其它
如果你非要用低版本的 VS 進行編譯,則以下内容僅可做參考,未必能成功

在編譯前,你需要下載下傳并安裝的軟體:

  • Visual Studio 2017 version 15.9
  • CMake
  • PCL 庫(若有需要)
  • PDAL 庫(若有需要)
  • CloudCompare - v2.10.3 (Zephyrus) 源碼
  • QtCreator
  • 其它
以上涉及到的軟體在 QQ群群檔案中基本都有現成安裝包或者下載下傳連結

前期準備

下面會對以上涉及到的軟體逐一進行介紹

1. Visual Studio 2017 version 15.9

下載下傳後安裝即可。低版本的 VS 請在該網站下載下傳
  • 官網直達

2. CMake 的下載下傳

建議下載下傳較高版本的 CMake。不管你下載下傳的是安裝版本還是解壓版本,能用就可以
  • 官網直達,或者可以從這裡下載下傳
  • 順便分享一個 CMake 的學習網址

3. PCL 庫(若有需要)

如果你想要編譯出的 CloudCompare 能夠加載 .pcd 點雲,請配置 PCL 庫;否則跳過
  • 這個可以參考我之前的博文:PCL+VS+Qt+Win10 的綜合配置精華

4. PDAL 庫(若有需要)

如果你想要編譯出的 CloudCompare 能夠加載 .las / .laz 點雲,請配置 PDAL 庫;否則跳過
由于 PDAL 庫需要太多的第三方庫,是以 PDAL 官網都不建議你自己去編譯 PDAL 庫,而是用現有的軟體來直接使用 PDAL 庫
目前官網推薦下載下傳 Conda 來使用 PDAL 庫。也可以使用 OSGEO4W 中包含的 PDAL 庫

你可以選擇以下兩個中的任意一個來使用 PDAL 庫:

方法一:利用 Conda

此部分教程你可以根據官網來進行配置
Conda 分為 Anaconda 和 Miniconda
  • 下載下傳 Anaconda
官網還提供了 Miniconda 的下載下傳,部落客使用的是 Anaconda

下載下傳完畢後,然後傻瓜式安裝即可,然後打開

Anaconda Promot

依次執行以下指令:

首先測試是否安裝成功:

conda --version
           

然後測試已經安裝的包(沒什麼用):

conda list
           

然後下載下傳 PDAL 庫:

conda create --yes --name myenv --channel conda-forge pdal
           

然後安裝 PDAL 庫:

conda install --name myenv --channel conda-forge pdal
           
其實到這裡就可以了,就可以開始 CMake CloudCompare 了,下面的三個步驟沒什麼用

然後檢測并更新 PDAL(沒什麼用):

conda update pdal
           

下載下傳測試資料(沒什麼用):

explorer.exe https://github.com/PDAL/data/raw/master/autzen/autzen.laz
           

測試 PDAL(換成你自己的路徑,這步也沒什麼用):

pdal info C:\Users\Never\Desktop\autzen.laz -p 0
           
這些指令執行後對應的結果見附錄1. Anaconda 指令執行結果展示

方法二:利用 OSGEO4W

  • 官網直達(

    下載下傳 64bit

該部分教程可參考:PDAL:OSGeo4W安裝配置測試PDAL
  • 用 OSGEO4W 配置 PDAL ,你需要注意以下幾點:
    • 下載下傳前最好确定好下載下傳位置,後期最好不要移動,否則會影響後期 CloudCompare 的編譯
    • 下載下傳 PDAL 時候需要較好的網速,網速不好可能會導緻下載下傳中斷,進而需要反複下載下傳
    • 對于提示缺少

      License

      的下載下傳,直接勾選

      I Agree

      ,繼續下一步即可
    • 如果沒有提示你

      OSGEO4W installation completed successful

      ,那就說明你還沒下載下傳完成;如果你下載下傳失敗,請下載下傳 QQ群群檔案中的此部分内容
    • 其它
如果有哪位兄台想自己體驗一把 PDAL 的編譯過程,請參考這個英文教程,英文很簡單的,不要怕。不過你要注意,這個編譯也是基于 VS2017的!

5. CloudCompare - v2.10.3 (Zephyrus) 源碼

  • 源碼的下載下傳,請認準這個網址:https://github.com/CloudCompare/CloudCompare/releases
  • 如果你直接在 Github 倉庫首頁(https://github.com/CloudCompare/CloudCompare)進行下載下傳,後期會出現一些未知錯誤

6. QtCreator

注意 Qt 版本最好在 5.7 以上,而且注意和你的編譯器相比對,具體請參考我的部落格 PCL+VS+Qt+Win10 的綜合配置精華
  • 官網直達

7. 其它

編譯 CloudCompare

1. 建立以下檔案夾目錄:

-------- C:\Users\Never\DesktopCC

                | -----CloudCompare-2.10.3      # 存放源碼

               | -----build                          # 存放 build 出來的工程)

                | -----prefix                        # 存放最終的 CloudCompare.exe)

2. 打開 CMake GUI,按照以下流程進行操作:

  • Where is the source code 填寫檔案夾 CloudCompare-2.10.3
  • Where to build the binaries 填寫檔案夾 build
  • 勾選 Grouped(沒什麼用)
  • 勾選 Advanced(沒什麼用)
  • Configure

  • 遇到失敗

  • Ungrouped Entries

    下的

    QT5_ROOT_PATH

    選擇你的 Qt 路徑,比如我的是:

    D:/Qt/5.7/msvc2013_64

  • CMake

    下的

    CMAKE_INSTALL_PREFIX

    更改路徑為建立的 prefix 檔案夾路徑
  • 如果你想要編譯

    PDAL

    ,請勾選

    OPTION

    下的

    OPTION_PDAL_LAS

  • 再次 Configure

  • 再次遇到失敗

  • Ungrouped Entries

    下的

    PDAL_DIR

    選擇你的 PDAL 路徑,比如我的是:

    D:/Anaconda3/envs/myenv/Library/lib/cmake/PDAL

  • 再次 Configure

  • 到這裡 Configure 應該成功了,若有失敗,請檢查以上過程你是否錯做正确
  • 正确無誤的話,

    Generate

3. 打開

build

檔案夾下的

CloudCompareProjects.sln

,依次執行一下内容:

  • 切換成

    x64

  • 切換成 Debug 或者 Release(根據你需要,自行設定)
  • ALL_BUILD

    右鍵 - 重新生成,如果報錯,請檢查上面的配置
  • INSTALL

    右鍵 - 重新生成,如果報錯,請檢查上面的配置
  • CloudCompare

    項目右鍵 - 設定為

    啟動項目

  • CloudCompare

    右鍵 - 屬性 - 配置屬性 - 正常 - 輸出目錄,改為你設定的

    CMAKE_INSTALL_PREFIX

    路徑下的

    CloudCmpare

    路徑,如我的是:

    C:\Users\Never\Desktop\CC\prefix\CloudCompare

    ,應用 - 确定(這個請參考官網推薦的後處了解決方案)
  • Ctrl + F5 運作程式,完美啟動

各階段可能遇到的問題

1. Visual Studio 下載下傳哪個版本的問題

  • 看你自己選擇,在不編譯 PDAL 的情況下,VS 2013 也是可以選擇安裝的(這個部落客嘗試過),隻不過你後期編譯的 CloudCompare 無法加載 .las 點雲,無法加載 .las 點雲的 CloudCompare 是沒有靈魂的
  • 要編譯 PDAL 的話,建議你最好使用 VS2017,不然你可能會遇到

    Error C2280

    的錯誤,這個錯誤可能會涉及到改源碼,很麻煩的
  • 其它原因

2. CMake 不過的問題

  • 如果是

    Configure

    失敗,則檢查你的

    QT5_ROOT_PATH

    路徑
  • 如果你 CMake 了 PDAL,請檢查你的

    PDAL_DIR

    路徑設定是否正确
  • 如果你 CMake 了 PCL,請檢查 PCL 配置是否正确。正常情況下,CMake 會自動找到你的 PCL 路徑;沒有找到的話請檢查你的 PCL 配置本身是否正确
  • CMake 版本不要太低
  • 其它原因

3. Generate 失敗的問題

  • 這個沒遇到過…

4. ALL_BUILD 重新生成失敗

  • 這個錯誤的可能原因就有很多,首要原因就是 PDAL 庫的問題,也就是你的 VS 版本問題
  • 其次就是你 CMake 過程中可能出現了一些問題
  • 其它原因

5. INTSALL 重新生成失敗

  • 這個沒遇到過…

6. Ctrl + F5 無法啟動的問題

  • 請設定

    輸出目錄

    路徑
  • 其它原因

7. Ctrl + F5 啟動後提示缺少 XXX.dll

  • 這個問題的原因也有很多,原因需要自己去排除
  • 解決方法是用

    Everything

    軟體搜尋對應的 dll,并複制到

    CloudCompare.exe

    的同級目錄下,比如我的是

    C:\Users\Never\Desktop\CC\prefix\CloudCompare

  • 複制時候,優先複制 PDAL 庫中的 dll,沒有的話,再複制 CloudCompare 軟體中自帶的 dll
  • 其它原因

8. 複制 dll 後出現動态調用失敗的問題

  • 這個就是說你複制的 dll 版本不對,換另一個路徑下的 dll 重新嘗試
  • 其它原因

9. 編譯 CloudCompare 缺少 xxx.lib

  • 依次設定

    QCC_DB_LIB

    QCC_GL_LIB

    QCC_IO_LIB

    的正常輸出目錄為

    CloudCompare.exe

    的同級目錄即可
  • 其它原因

10. 提示缺少 GDAL203.dll 的錯誤

  • 可能與 VS 版本有關系
  • 也可能是 PDAL 庫有問題,不過優先考慮 VS 版本
  • 其它原因

11 生成 ALL)BUILD 時提示

E2512

的錯誤

  • 考慮你的 Qt 環境是否正确配置,也就是說,Qt 是否能單獨運作,這部分不會配置的,請參考我的部落格 PCL+VS+Qt+Win10 的綜合配置精華
  • 其它

12. 在 ALL_BUILD 時遇到

C2666

的錯誤

  • 考慮你 CMake 選擇的 VS 版本和你打開

    CloudCompareProjects.sln

    的 VS 版本是否一緻
  • 其它

13. …

未來嘗試解決的問題

  • 編譯能夠加載其它格式點雲資料的 CloudCompare
  • 更新 CloudCompare 插件編寫的部落格,請持續關注後續部落格
  • 其它

參考部落格

強烈推薦

  1. PDAL:OSGeo4W安裝配置測試PDAL
  2. CloudCompare2.9.1編譯
  3. VS2013下CloudCompare的編譯
  4. Win7+VS2017+cloudcompare 編譯和運作
  5. CloudCompare:Win10 + VS2017 + Qt5.9 + CMake3.14 編譯CloudCompare2.1x

其它

  1. 【CloudCompare2.9.1編譯】vs2015+Qt5.7.1+win10環境下相關注意事項
  2. vs2012+win8.1+cloudcompare源碼編譯

後期研究如何編寫 CC 插件可能會用到的連結

  1. libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)
  2. CloudCompare學習-添加菜單
  3. 八叉樹Octree

這個部落客的系列文章很好

  1. CloudCompare插件編寫一(插件架構)
  2. CloudCompare插件編寫二(資料結構)
  3. CloudCompare插件編寫三(算法實作)

附錄

1. Anaconda 指令執行結果展示

(base) C:\Users\Never>conda --version
conda 4.7.10

(base) C:\Users\Never>conda list
# packages in environment at D:\Anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0
...                       ...                      ...
zstd                      1.3.7                h508b16e_0

(base) C:\Users\Never>conda create --yes --name myenv --channel conda-forge pdal
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.7.10
  latest version: 4.7.11

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: D:\Anaconda3\envs\myenv

  added / updated specs:
    - pdal


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    boost-cpp-1.68.0           |    h6a4c333_1000        31.1 MB  conda-forge
    ...                        |                           
    zstd-1.4.0                 |       hd8a0e53_0         1.5 MB  conda-forge
    ------------------------------------------------------------
                                           Total:       291.9 MB

The following NEW packages will be INSTALLED:

  boost-cpp          conda-forge/win-64::boost-cpp-1.68.0-h6a4c333_1000
  ...                ...
  zstd               conda-forge/win-64::zstd-1.4.0-hd8a0e53_0



Downloading and Extracting Packages
jsoncpp-1.8.4        | 118 KB    | ################################################################### | 100%
...
proj4-6.1.0          | 8.4 MB    | #################################################################### | 100%

...

# All requested packages already installed.

(base) C:\Users\Never>conda update pdal

PackageNotInstalledError: Package is not installed in prefix.
  prefix: D:\Anaconda3
  package name: pdal

(base) C:\Users\Never>explorer.exe https://github.com/PDAL/data/raw/master/autzen/autzen.laz

(base) C:\Users\Never>pdal info C:\Users\Never\Desktop\autzen.laz -p 0

(base) C:\Users\Never>
           

2. 一些過程截圖

OSGEO4W PDAL 安裝完成

CloudCompare 最新版編譯與運作(全網最詳細)

沒有 License ,勾選 I Agree 下一步

CloudCompare 最新版編譯與運作(全網最詳細)

下載下傳 x64 的 OSGEO4W

CloudCompare 最新版編譯與運作(全網最詳細)

安裝 OSGEO4W 時候點選 skip 前後

CloudCompare 最新版編譯與運作(全網最詳細)
CloudCompare 最新版編譯與運作(全網最詳細)