
最近又有一批同事問我 Ubuntu 22.04 上到底怎么裝 CloudCompare。有人圖省事直接snap install結(jié)果插件不全有人照老教程源碼編譯結(jié)果卡在依賴上幾個(gè)小時(shí)。其實(shí)這個(gè)問題本身不難難的是 Snap 版和源碼版的使用邊界沒搞清楚導(dǎo)致選錯(cuò)了路子。我自己在 Ubuntu 22.04 上把兩種方式都完整跑了一遍還專門把 PCL/PDAL 插件編譯出來做了驗(yàn)證這里把全過程和踩坑記錄一次性寫清楚。這篇攻略適合兩類人一是趕項(xiàng)目進(jìn)度就想快速打開點(diǎn)云看一眼、做個(gè)配準(zhǔn)測個(gè)距離的兄弟二是要在 CloudCompare 基礎(chǔ)上做二次開發(fā)、需要命令行批量調(diào)用算法、或者必須用到 PCL/PDAL 完整插件的開發(fā)者。兩種方案我都放在下面你按自己的需求照著走就行。1. 安裝方式選型Snap 版和源碼版你到底該選哪個(gè)很多人上來就問“哪個(gè)安裝方式最好”這個(gè)問題本身就沒問對。Snap 和源碼編譯不是競爭關(guān)系它們針對的是完全不同的使用場景。我個(gè)人的判斷標(biāo)準(zhǔn)很簡單你只是“用”CloudCompare還是需要“改”或者“嵌入”CloudCompare。搞清楚這一條選型就完成了一大半。1.1 官方 Snap 包解決了什么痛點(diǎn)Snap 版最大的價(jià)值在于“開箱即用”。Ubuntu 22.04 自帶 apt 源里雖然有 cloudcompare 的安裝包但版本落后得厲害而且依賴關(guān)系非常分散光把 Qt、OpenGL 相關(guān)的庫補(bǔ)齊就要折騰半天。Snap 包把 CloudCompare 和它運(yùn)行時(shí)需要的各種庫全部打包在一起裝上就是一個(gè)獨(dú)立環(huán)境完全不會污染系統(tǒng)里其他軟件的依賴。還有一個(gè)容易被忽視的好處Snap 版會自動(dòng)更新。對于不怎么折騰系統(tǒng)、也不想每次手動(dòng)去追新版本的用戶來說這個(gè)特性特別省心。你不需要關(guān)心 PCL 版本、PDAL 版本、Qt 版本之間是否兼容Snap 的維護(hù)者已經(jīng)幫你處理好了這些事。但 Snap 也不是沒有問題。最典型的限制是它的沙箱機(jī)制——默認(rèn)情況下Snap 應(yīng)用能訪問的目錄權(quán)限是受限的。你如果平時(shí)只打開home目錄下面的數(shù)據(jù)那感受不到區(qū)別一旦你習(xí)慣把點(diǎn)云數(shù)據(jù)放在移動(dòng)硬盤或者/data、/mnt這類非標(biāo)準(zhǔn)路徑下第一次打開文件失敗的時(shí)候就會意識到問題的存在。這個(gè)我后面會講怎么處理。1.2 源碼編譯的真實(shí)需求場景源碼編譯適合哪些情況我列一個(gè)清單你對照一下自己有沒有命中需要用到 PCL 插件的完整功能包括各種濾波、配準(zhǔn)、特征提取算法而不是只有 Snap 版給你默認(rèn)開啟的那幾個(gè)基礎(chǔ)功能。需要 PDAL 插件來讀寫 las/laz 格式并且要做格式轉(zhuǎn)換、坐標(biāo)系處理、點(diǎn)云抽稀等數(shù)據(jù)流水線操作。需要在終端里以命令行方式調(diào)用 CloudCompare 的算法模塊比如在批量處理腳本里對幾十個(gè)點(diǎn)云文件做自動(dòng)化配準(zhǔn)或采樣。需要修改 CloudCompare 源碼比如在它的插件框架下新增自定義算法或者把 CloudCompare 的某些模塊嵌入到你自己的點(diǎn)云處理系統(tǒng)里。只要你命中了上述任意一條就老老實(shí)實(shí)走源碼編譯。反之如果你只是偶爾看看點(diǎn)云、量個(gè)尺寸、做個(gè)簡單配準(zhǔn)Snap 版完全夠用沒必要為了一兩個(gè)功能去折騰整個(gè)編譯環(huán)境。1.3 兩種方案的直觀對比我做了個(gè)對比表方便你快速判斷對比項(xiàng)Snap 版源碼編譯版安裝復(fù)雜度極低一條命令較高需裝依賴、配 CMake插件完整性默認(rèn)插件可用PCL/PDAL 受限可完整編譯 PCL/PDAL 插件命令行批量調(diào)用受限入口不直觀自由調(diào)用所有命令行模塊二次開發(fā)能力不適用支持可修改/新增插件更新方式自動(dòng)更新手動(dòng)拉代碼重新編譯數(shù)據(jù)文件訪問需額外授權(quán)非 home 目錄無限制2. Snap 安裝實(shí)操與使用技巧如果你確定走 Snap 路線這部分可以讓你少折騰不少彎路。Snap 安裝本身很簡單但裝完之后遇到的幾個(gè)小坑如果不注意會非常影響使用體驗(yàn)。2.1 一行命令完成安裝打開終端執(zhí)行sudo snap install cloudcompare安裝過程會自動(dòng)拉取最新穩(wěn)定版并完成初始化。如果你對 release 通道有要求也可以顯式指定sudo snap install cloudcompare --stable這里順帶解釋一下默認(rèn)不指定通道時(shí)Snap 也是裝 stable 通道的最新版所以上面兩種寫法本質(zhì)一樣。區(qū)別在于如果你之后想切到候選版或測試版體驗(yàn)新功能可以用sudo snap switch命令換通道。2.2 啟動(dòng)方式與命令路徑問題安裝完成后兩種啟動(dòng)方式在應(yīng)用菜單里搜索 CloudCompare點(diǎn)擊圖標(biāo)啟動(dòng)。在終端輸入cloudcompare.CloudCompare啟動(dòng)。第二條很多人不知道。你可能會嘗試直接輸入cloudcompare但大概率會提示命令不存在。這是因?yàn)?Snap 包的二進(jìn)制入口名帶了包名前綴。Snap 的可執(zhí)行文件統(tǒng)一放在/snap/bin目錄下你可以通過 ls 看一眼真實(shí)的可執(zhí)行文件名ls /snap/bin/ | grep -i cloud如果你之后想寫腳本調(diào)用 CloudCompare請務(wù)必使用完整的cloudcompare.CloudCompare命令而不是裸的cloudcompare。2.3 處理 Snap 沙箱導(dǎo)致的文件無法打開問題這是 Snap 版最容易被吐槽的地方。第一次安裝完我打開一個(gè)放在/mnt/data目錄下的 las 文件界面直接卡住控制臺報(bào)權(quán)限錯(cuò)誤。原因就是 Snap 默認(rèn)限制應(yīng)用訪問 home 目錄之外的路徑。解決辦法是手動(dòng)連接可移動(dòng)介質(zhì)接口sudo snap connect cloudcompare:removable-media執(zhí)行完這條命令/media、/mnt、/run/media這些路徑下的文件就能正常訪問了。如果你連 home 目錄下某些隱藏文件夾也讀不了再執(zhí)行sudo snap connect cloudcompare:home這兩條命令執(zhí)行后不需要重啟直接重新打開文件就行。我的實(shí)測經(jīng)驗(yàn)是removable-media這一步基本是必須的因?yàn)楹芏嗳肆?xí)慣把大體積點(diǎn)云數(shù)據(jù)放在移動(dòng)硬盤或獨(dú)立數(shù)據(jù)分區(qū)上連這一步都沒做的話裝完 Snap 版會發(fā)現(xiàn)哪哪都打不開。2.4 Snap 版的隱藏限制除了文件訪問權(quán)限Snap 版還有一個(gè)不太容易被注意到的限制命令行選項(xiàng)支持不完整。CloudCompare 本身有一套命令行處理模式可以脫離 GUI 執(zhí)行點(diǎn)云配準(zhǔn)、采樣、格式轉(zhuǎn)換等任務(wù)。但在 Snap 版里這套命令行入口被封了一層某些參數(shù)無法正常傳遞或者輸出路徑被沙箱規(guī)則攔截。我實(shí)測過簡單的-SILENT模式能跑但涉及寫文件到/tmp之外的地方就會失敗。如果你重度依賴命令行自動(dòng)化操作這一點(diǎn)是你遷移到源碼編譯版的最強(qiáng)理由。3. 源碼編譯全流程從依賴到插件一步到位源碼編譯部分我寫得細(xì)一點(diǎn)因?yàn)檫@里面的細(xì)節(jié)太多了。Ubuntu 22.04 相比舊版本系統(tǒng)有個(gè)很大的優(yōu)勢PCL 1.12 和 PDAL 2.3 都在官方軟件源里可以直接 apt 安裝不用從源碼構(gòu)建這些龐大的依賴庫。這意味著整個(gè)編譯過程會順暢很多但前提是你要把依賴裝對、裝全。3.1 前置依賴安裝一次性裝齊避免反復(fù)折騰先更新軟件源再把基礎(chǔ)編譯工具鏈裝上sudo apt update sudo apt install build-essential cmake git然后是 Qt5 相關(guān)開發(fā)庫這是 CloudCompare GUI 的核心依賴sudo apt install qtbase5-dev qttools5-dev libqt5opengl5-dev libqt5svg5-dev接著是 PCL 和 PDAL 的主庫及開發(fā)包sudo apt install libpcl-dev pcl-tools sudo apt install libpdal-dev pdal如果你需要完整的 PCL 功能強(qiáng)烈建議把下面這些也一起裝掉否則編譯 PCL 插件時(shí)經(jīng)常因?yàn)槿鄙倌硞€(gè)組件導(dǎo)致 CMake 自動(dòng)把插件關(guān)掉sudo apt install libflann-dev libboost-all-dev libeigen3-dev libvtk9-dev libvtk9-qt-dev這里說明一下為什么要把 Boost 全家桶裝上。PCL 1.12 對 Boost 的依賴范圍很廣缺了某些 Boost 子庫的話編譯過程會報(bào)出一些隱晦的函數(shù)未定義錯(cuò)誤排查起來非常費(fèi)時(shí)。Ubuntu 22.04 的 apt 源里 Boost 1.74 版本齊全與其一個(gè)缺一個(gè)補(bǔ)不如一次性把常見的開發(fā)包都裝到位。3.2 獲取源碼與分支選擇源碼在 GitHub 上可以直接拉取git clone --recursive https://github.com/CloudCompare/CloudCompare.git cd CloudCompare這里的--recursive參數(shù)必須帶上。CloudCompare 的倉庫里有子模塊比如CCPlugin、qPCL等依賴的外部代碼。如果不帶這個(gè)參數(shù)你會在 CMake 配置階段遇到一大堆找不到頭文件的錯(cuò)誤到時(shí)候再補(bǔ)救就得回到根目錄執(zhí)行g(shù)it submodule update --init --recursive白白浪費(fèi)時(shí)間。分支選擇上常規(guī)使用推薦拉取 master 分支的最新 release tag。如果你想用最新的開發(fā)功能也可以直接留在默認(rèn)分支上編譯。不過我的建議是使用 release 版本穩(wěn)定性更有保障。3.3 CMake 配置與插件開關(guān)詳解進(jìn)入源碼目錄創(chuàng)建獨(dú)立的 build 目錄來隔離編譯產(chǎn)物mkdir build cd build然后執(zhí)行 CMake 配置。下面是我驗(yàn)證過的可用指令組合cmake -DCMAKE_BUILD_TYPERelease \ -DPLUGIN_PCLON \ -DPLUGIN_PDALON \ -DOPTION_USE_QT_GUION \ ..幾個(gè)關(guān)鍵選項(xiàng)解釋一下CMAKE_BUILD_TYPE必須設(shè)為Release。Debug模式編譯出來的程序體積巨大、運(yùn)行極慢而且很多優(yōu)化被關(guān)閉點(diǎn)云渲染流暢度會明顯下降。PLUGIN_PCLPCL 插件開關(guān)。設(shè)為ON后編譯出來的 CloudCompare 在插件菜單里會出現(xiàn)完整的 PCL 算法列表包括配準(zhǔn)、濾波、特征估計(jì)等。PLUGIN_PDALPDAL 插件開關(guān)。開啟后支持通過 PDAL 讀取大量點(diǎn)云格式尤其是 las/laz 文件的讀寫非常高效。OPTION_USE_QT_GUIGUI 開關(guān)必須保持 ON。如果你只想編譯純命令行版本可以關(guān)掉但不推薦因?yàn)槟闳粘2榭袋c(diǎn)云還是需要圖形界面的。CMake 配置完成后仔細(xì)看一下終端輸出的 Summary 信息重點(diǎn)確認(rèn) PCL 和 PDAL 對應(yīng)的狀態(tài)是ON。如果顯示OFF通常意味著 CMake 沒有找到對應(yīng)的庫你需要手動(dòng)指定庫路徑這個(gè)我放在后面的問題排查章節(jié)詳細(xì)講。3.4 編譯與安裝CMake 配置通過后開始編譯make -j$(nproc)-j$(nproc)的意思是啟用 CPU 全部核心并行編譯。以 8 核 CPU 為例整個(gè)過程大約需要 10 到 15 分鐘。如果你在編譯過程中發(fā)現(xiàn)內(nèi)存吃緊可以適當(dāng)降低并行數(shù)比如make -j4。編譯完成后可執(zhí)行文件位于build/qCC/CloudCompare。你可以直接運(yùn)行./qCC/CloudCompare看到圖形窗口彈出說明編譯成功。如果你想把 CloudCompare 安裝到系統(tǒng)目錄讓終端里任何位置都能直接運(yùn)行執(zhí)行sudo make install安裝完成后你會在/usr/local/bin下找到CloudCompare可執(zhí)行命令。3.5 PCL/PDAL 插件在 CMake 中的配置核對插件“編譯了但不生效”是新手最容易遇到的問題。這里有一個(gè)關(guān)鍵的排查思路CMake 配置時(shí)的ON不代表插件一定會被編譯只有在make過程中真正生成了對應(yīng)的動(dòng)態(tài)庫文件插件才算編譯成功。PCL 插件的編譯產(chǎn)物通常是一個(gè)以libqPCL.so命名的動(dòng)態(tài)庫PDAL 插件的產(chǎn)物是libqPDAL.so。編譯完成后你可以通過 find 命令確認(rèn)find build -name libqPCL.so -o -name libqPDAL.so如果能找到對應(yīng)的 .so 文件說明插件編譯成功。同時(shí)在 qCC 的編譯目錄下這些插件會被自動(dòng)放到可執(zhí)行文件旁邊的 plugins 目錄中啟動(dòng) CloudCompare 時(shí)會自動(dòng)加載。啟動(dòng)后在菜單欄的“插件”菜單里就能看到 PCL 和 PDAL 的完整功能列表。3.6 讓命令行調(diào)用工作得更順手源碼編譯版的另一個(gè)核心優(yōu)勢是命令行調(diào)用。CloudCompare 的命令行模式?jīng)]有獨(dú)立的二進(jìn)制文件而是同一個(gè) GUI 程序加參數(shù)運(yùn)行。編譯完成之后你可以這樣驗(yàn)證./qCC/CloudCompare -SILENT -O /path/to/input.las -C_EXPORT_FMT LAS -SAVE_CLOUDS FILE /tmp/output.las這段命令的作用是靜默模式打開一個(gè) las 文件然后導(dǎo)出為 las 格式保存到指定路徑。注意-SILENT參數(shù)它會禁止彈出 GUI 窗口讓程序在后臺完成處理。對于批量處理場景你可以寫一個(gè)簡單的 shell 腳本來循環(huán)處理多個(gè)文件for f in *.las; do ./qCC/CloudCompare -SILENT -O $f -SS 0.05 -SAVE_CLOUDS FILE sampled_${f} done這個(gè)例子實(shí)現(xiàn)了批量抽稀-SS 0.05表示以 0.05 米的間距進(jìn)行空間采樣。類似這樣的命令行操作在 Snap 版里很難穩(wěn)定跑通在源碼版里則暢通無阻。4. 常見問題與排查實(shí)錄依賴環(huán)境這個(gè)東西不同人的機(jī)器上狀況千差萬別。我自己在編譯過程中踩了幾個(gè)典型的坑也幫同事排查過不少類似情況把最常遇到的問題整理成一份速查表方便你對照排查。癥狀可能原因解決方式CMake 報(bào) Qt5 找不到未安裝 Qt5 開發(fā)包或系統(tǒng)優(yōu)先找到 Qt6安裝 qtbase5-dev或手動(dòng)指定 Qt5_DIRCMake 報(bào) PCL_DIR 未找到缺少 libpcl-dev確認(rèn)安裝后手動(dòng)指定 PCL_DIRCMake 報(bào) PDAL_DIR 未找到缺少 libpdal-dev確認(rèn)安裝后手動(dòng)指定 PDAL_DIR編譯中途報(bào) Boost 函數(shù)未定義缺 Boost 子系統(tǒng)開發(fā)包安裝 libboost-all-dev編譯時(shí)內(nèi)存不足并行數(shù)過高降低 make -j 參數(shù)啟動(dòng)后插件菜單無 PCL/PDAL 條目插件庫未生成或加載失敗檢查 libqPCL.so 是否存在重新編譯插件打開 las 文件總報(bào)格式錯(cuò)誤未啟用 PDAL 插件必須將 PLUGIN_PDAL 設(shè)為 ON 并重新編譯4.1 CMake 找不到 Qt5 的問題Ubuntu 22.04 上有個(gè)比較隱蔽的問題系統(tǒng)可能同時(shí)存在 Qt5 和 Qt6 的某些組件CMake 的find_package(Qt5)會跑偏。排查方法是在 build 目錄里看 CMakeCache.txtgrep -i Qt5_DIR CMakeCache.txt如果顯示路徑包含 Qt6 或者路徑為空就需要手動(dòng)指定cmake -DQt5_DIR/usr/lib/x86_64-linux-gnu/cmake/Qt5 ..然后重新 make。這種情況通常出現(xiàn)在你之前裝過 Qt6 開發(fā)包的環(huán)境里。4.2 PCL/PDAL 庫路徑找不到的排查如果你確定已經(jīng)安裝了libpcl-dev但 CMake 還是找到不可以手動(dòng)設(shè)定庫路徑。Ubuntu 22.04 上 PCL 的 cmake 配置文件在/usr/lib/x86_64-linux-gnu/cmake/pcl指定方式cmake -DPCL_DIR/usr/lib/x86_64-linux-gnu/cmake/pcl ..PDAL 的 cmake 配置文件在/usr/lib/cmake/PDAL指定方式cmake -DPDAL_DIR/usr/lib/cmake/PDAL ..這種問題在 22.04 上其實(shí)不多因?yàn)楣俜皆蠢锏陌窂蕉己軜?biāo)準(zhǔn)但如果你用了第三方的 PPA 或者自行編譯過 PCL/PDAL路徑可能變化這時(shí)手動(dòng)指定就很有必要。4.3 vtk 相關(guān)的編譯錯(cuò)誤PCL 插件依賴 VTK 庫。Ubuntu 22.04 官方源里默認(rèn)是 VTK 9如果你之前裝了老版本系統(tǒng)的教程裝的是 VTK 7 或 8編譯時(shí)會出現(xiàn)大量類型不匹配錯(cuò)誤。這種情況建議徹底清理后重裝sudo apt remove libvtk* --purge sudo apt autoremove sudo apt install libvtk9-dev libvtk9-qt-dev清理 VTK 相關(guān)包時(shí)要小心確認(rèn)系統(tǒng)里沒有其他軟件依賴舊版 VTK否則可能引發(fā)連鎖依賴問題。4.4 編譯過程崩潰或 OOMCloudCompare 的編譯對內(nèi)存有一定要求并行編譯時(shí)尤其明顯。8 核機(jī)器-j8下峰值內(nèi)存可以達(dá)到 6~8GB如果系統(tǒng)內(nèi)存只有 8GB很容易觸發(fā) OOM。編譯崩潰時(shí)最簡單有效的方式就是降低并行度make -j2慢一點(diǎn)沒關(guān)系穩(wěn)定編譯成功才是目的。另外可以臨時(shí)關(guān)閉桌面環(huán)境里的重型應(yīng)用釋放一部分內(nèi)存。4.5 插件編譯成功但加載不出來的問題這種情況我曾經(jīng)遇到過。動(dòng)態(tài)庫文件已經(jīng)生成在 build 目錄下但啟動(dòng) CloudCompare 后插件菜單里就是沒有。排查步驟是啟動(dòng)時(shí)在終端觀察輸出是否加載了 libqPCL.so。確認(rèn)插件庫文件是否被復(fù)制到了可執(zhí)行文件旁邊的插件目錄。手動(dòng)復(fù)制插件庫到正確位置cp build/plugins/qPCL/libqPCL.so build/qCC/plugins/ cp build/plugins/qPDAL/libqPDAL.so build/qCC/plugins/CloudCompare 啟動(dòng)時(shí)會掃描可執(zhí)行文件同級目錄下的 plugins 文件夾只要 .so 文件存在且依賴庫齊全插件就能正常加載。5. 安裝完成后的驗(yàn)證與進(jìn)階使用裝好不是終點(diǎn)能穩(wěn)定跑起來才是目的。我建議你裝完后做一遍快速驗(yàn)證把核心功能都過一遍確認(rèn)自己裝的版本沒問題。5.1 快速功能驗(yàn)證清單啟動(dòng) CloudCompare確認(rèn) GUI 窗口正常渲染。導(dǎo)入一個(gè) las 或 ply 點(diǎn)云文件確認(rèn)三維渲染流暢旋轉(zhuǎn)縮放無卡頓。打開插件菜單確認(rèn) PCL 和 PDAL 兩個(gè)插件條目存在且能展開子菜單。執(zhí)行一次簡單的點(diǎn)云配準(zhǔn)操作比如 ICP 配準(zhǔn)確認(rèn)算法模塊正常參與計(jì)算。通過 PDAL 插件導(dǎo)出一個(gè) las 文件確認(rèn)讀寫鏈路沒有問題。其中點(diǎn)云配準(zhǔn)和 las 讀寫是 PCL/PDAL 插件最核心的兩個(gè)能力這兩項(xiàng)驗(yàn)證通過說明插件配置基本沒有問題。5.2 命令行批量處理的實(shí)際運(yùn)用源碼編譯版最讓我受益的場景是批量處理。舉個(gè)例子項(xiàng)目里有一次需要對 30 多個(gè)測站點(diǎn)云做統(tǒng)一抽稀如果逐個(gè)打開 GUI 操作一個(gè)文件就得花兩三分鐘30 個(gè)文件就是將近一個(gè)小時(shí)。用命令行腳本來做全部時(shí)間不超過兩分鐘mkdir -p output for f in scans/*.las; do name$(basename $f .las) ./qCC/CloudCompare -SILENT -O $f -SS 0.02 -SAVE_CLOUDS FILE output/${name}_sampled.las done這個(gè)腳本做的事是對scans目錄下所有 las 文件做間距為 2 厘米的均勻采樣輸出到output目錄。核心就是-SS 0.02這個(gè)參數(shù)——CloudCompare 的內(nèi)部空間采樣算法能以指定間距對點(diǎn)云進(jìn)行均勻抽稀效果比直接隨機(jī)抽點(diǎn)要規(guī)整得多。5.3 源碼版后續(xù)升級維護(hù)源碼版不像 Snap 版會自動(dòng)更新維護(hù)需要手動(dòng)進(jìn)行。我一般按這個(gè)流程走cd CloudCompare git pull git submodule update --init --recursive rm -rf build mkdir build cd build cmake [同樣的參數(shù)] .. make -j$(nproc) sudo make install這里我特別強(qiáng)調(diào)一點(diǎn)每次更新后一定要把 build 目錄刪掉重新建。不要圖省事直接在已有 build 目錄里重新 cmake因?yàn)榕f的 CMakeCache.txt 里會殘留上次配置的變量容易引發(fā)莫名其妙的編譯錯(cuò)誤。刪掉重建雖然多花幾十秒但省去的是幾個(gè)小時(shí)的排錯(cuò)時(shí)間。5.4 與系統(tǒng)里其他點(diǎn)云工具的配合CloudCompare 在 Ubuntu 生態(tài)里不是孤立存在的。我經(jīng)常把它和CloudCompare配合pdal命令行工具、ply格式的處理腳本一起用。比如先用 PDAL 對點(diǎn)云做地面分類再用 CloudCompare 做可視化驗(yàn)證和精細(xì)配準(zhǔn)。各自發(fā)揮長處效率會高很多。如果你的工作流里也涉及這類多工具搭配源碼編譯版的靈活性和對數(shù)據(jù)格式的完整支持會讓你舒服很多。我在實(shí)際使用中的體會是CloudCompare 的源碼編譯其實(shí)最難的部分不是編譯本身而是編譯前那 20 分鐘的依賴決策——你到底需要哪些插件、哪些功能決定你在 CMake 階段寫哪些選項(xiàng)。第一次編譯時(shí)我貪多求全把所有插件都打開了結(jié)果編譯時(shí)間翻倍還多出不少依賴沖突。后來精簡到 PCL、PDAL 兩個(gè)核心插件整個(gè)過程就順多了。如果你之前從來沒編譯成功過建議第一次就老老實(shí)實(shí)只開這兩個(gè)插件跑通之后再考慮要不要加別的。最后再分享一個(gè)小技巧編譯時(shí)把-DCMAKE_INSTALL_PREFIX$HOME/opt/CloudCompare指定成自己的目錄這樣既不用 root 權(quán)限后續(xù)清理升級也方便得多。