文章目錄
-
- 更新介紹
- 說明
- 前期準備
-
- 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 的編譯,網上教程有不少,但是存在以下缺點:
- 大多數教程寫的含糊其辭,沒有過程記錄,有的甚至草草一筆帶過,說不到重點
- 使用的 VS 版本老舊,已經無法适應時代需求
- 使用的 CloudCompare 庫老舊,對應的方法也老舊,殊不知 CC 這兩年變化已經很大了
- 存在大面積抄襲現象
- 無法複現編譯成功的過程,沒有 get 到編譯重點
- 内容過于簡單,沒有進行一個總體彙總,無法供後來者學習
- 其它
為此,部落客将網上的教程進行一個大彙總,歸納出最核心的配置過程。當然最好的教程還是 CloudCompare 官網提供的教程:
- 教程網址直達
在編譯前,你需要了解以下内容:
- 截止發文時,CloudCompare 官網 提供的安裝軟體最新版本為
,Github 倉庫提供的最新版本為CloudCompare 2.11.alpha
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
- 如果沒有提示你
,那就說明你還沒下載下傳完成;如果你下載下傳失敗,請下載下傳 QQ群群檔案中的此部分内容OSGEO4W installation completed successful
- 其它
如果有哪位兄台想自己體驗一把 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
選擇你的 Qt 路徑,比如我的是:QT5_ROOT_PATH
D:/Qt/5.7/msvc2013_64
- 在
下的CMake
更改路徑為建立的 prefix 檔案夾路徑CMAKE_INSTALL_PREFIX
- 如果你想要編譯
,請勾選PDAL
下的OPTION
OPTION_PDAL_LAS
-
再次 Configure
-
再次遇到失敗
- 在
下的Ungrouped Entries
選擇你的 PDAL 路徑,比如我的是:PDAL_DIR
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
- 這個問題的原因也有很多,原因需要自己去排除
- 解決方法是用
軟體搜尋對應的 dll,并複制到Everything
的同級目錄下,比如我的是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 版本和你打開
的 VS 版本是否一緻CloudCompareProjects.sln
- 其它
13. …
- …
未來嘗試解決的問題
- 編譯能夠加載其它格式點雲資料的 CloudCompare
- 更新 CloudCompare 插件編寫的部落格,請持續關注後續部落格
- 其它
參考部落格
強烈推薦
- PDAL:OSGeo4W安裝配置測試PDAL
- CloudCompare2.9.1編譯
- VS2013下CloudCompare的編譯
- Win7+VS2017+cloudcompare 編譯和運作
- CloudCompare:Win10 + VS2017 + Qt5.9 + CMake3.14 編譯CloudCompare2.1x
其它
- 【CloudCompare2.9.1編譯】vs2015+Qt5.7.1+win10環境下相關注意事項
- vs2012+win8.1+cloudcompare源碼編譯
後期研究如何編寫 CC 插件可能會用到的連結
- libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)
- CloudCompare學習-添加菜單
- 八叉樹Octree
這個部落客的系列文章很好
- CloudCompare插件編寫一(插件架構)
- CloudCompare插件編寫二(資料結構)
- 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 安裝完成
沒有 License ,勾選 I Agree 下一步
下載下傳 x64 的 OSGEO4W
安裝 OSGEO4W 時候點選 skip 前後