這件事的起源還得從師姐找我幫忙開始**開始說起……
系統:ubuntu18.04
原本我用的libpcl庫用得好好的,直到有一天師姐想讓我幫忙測試python的pcl庫,我在linux下使用的是pycharm+anaconda,在setting裝了pcl庫之後,並沒有正常執行。於是我按照某部落格的說明操作之後,還把我原本libpcl的庫搞壞了,真是太難了。也就是說我現在編譯包含pcl的庫總是報錯。
編譯包含pcl庫的程式時:
報錯: /usr/lib/x86_64-linux-gnu/cmake/pcl/pclconfig.cmake:772(pcl_report_not_found)
cmakelists.txt:16 (find_package)
既然裝了libpcl庫,為什麼還不能識別pcl呢?我嘗試把路徑都包含進cmakelists.txt,可都沒有效果,於是我就想,要不把pcl原始碼直接編譯一遍得了。
真是too young too *****。
編譯pcl點雲庫,同樣報錯。編譯說明在此
報錯:/x86_64-linux-gnu/libsm.so: undefined reference touuid_generate@uuid_1.0
/x86_64-linux-gnu/libsm.so: undefined reference touuid_unparse_lower@uuid_1.0
看了這個老哥的解決方法,其實大概的意思就是說,可能是我在anaconda裝了這個pcl庫,然後我又重新編譯原始碼,導致衝突,那麼就可以把anaconda的路徑暫時去掉,讓find_package無法搜尋到anaconda的庫。
很可惜,我按照做了,同樣失敗了。後來我又想,應該就是這個問題沒錯,之前沒裝這個anaconda的庫都沒問題,於是我做了乙個大膽的決定,把anaconda刪掉。
步驟的話,就是直接刪除anaconda目錄,然後在.bashrc裡把環境變數去掉就行了,具體可自行查詢。
然後重新編譯pcl庫,依然出現錯誤…快絕望了。
報錯:c++: internal compiler error: 已殺死 (program cc1plus)
冷靜了一會之後,檢查了錯誤,這錯誤好解決,記憶體不足…本機記憶體+交換空間都16g了,還不夠。不夠是吧,財大氣粗的我打算再給多你8g記憶體(這個給多少自己決定):
輸入以下命令:(在輸入之前free一下看看自己的記憶體,輸入下列命令之後再輸一次free看是否有增加)
sudo dd if
=/dev/zero of=
/swapfile bs=
8192 count=
1048576
sudo mkswap /swapfile
sudo swapon /swapfile
最終編譯成功了,測試包含pcl庫的程式,妥妥的能用。
編譯完之後,把記憶體收回來:
sudo swapoff /swapfile
sudo rm /swapfile
PCL點雲庫概述
pcl點雲概述 點雲處理技術廣泛應用在逆向工程 cad cam 機械人學 雷射遙感測量 機器視覺 虛擬實境 人機互動 立體3d影像等諸多領域。由於其涉及計算機學 圖形學 人工智慧 模式識別 幾何計算 感測器等諸多學科,但一直以來由於點雲獲取手段的昂貴,嚴重阻礙其在各個行業上的廣泛應用,也造成國內點雲...
多個PCL庫導致編譯出錯的問題
背景 之前的乙個程式,編譯木有問題,各種鏈結庫也都ok。之前編譯時,會出現2個警告 現在,編譯居然不出現這兩個警告,但是,鏈結庫出問題,導致編譯不通過。in function pcl pointcloud operator pcl pointcloudconst register clouds.cp...
PCL 1 PCL點雲庫安裝
2.傻瓜式安裝 下面的依賴項都整合進來了 中間安裝了boost vtk kinect驅動什麼的。反正是一路下一步,當然我的機器是win7系統,之前沒有安裝過pcl,比較純淨。之後又單獨安裝了qt4.8.2的sdk。3.測試 在安裝目錄下有share doc pcl 1.6 tutorials sou...