linux PCLライブラリのインストール


一、インストール依存ライブラリ:Boost、Eigen、FLANN、vtk
オプション:Qhull、OpenNI、CUDA
以下はすべての依存パッケージのインストールですが、不確定な場合はすべてインストールします.
sudo apt-get update  
sudo apt-get install git build-essential linux-libc-dev  
sudo apt-get install cmake cmake-gui   
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev  
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common    
sudo apt-get install libflann1.8 libflann-dev  
sudo apt-get install libeigen3-dev  
sudo apt-get install libboost-all-dev  
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev  
sudo apt-get install libqhull* libgtest-dev  
sudo apt-get install freeglut3-dev pkg-config  
sudo apt-get install libxmu-dev libxi-dev   
sudo apt-get install mono-complete  
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre  

このうちvtkとqtの2つのライブラリは、ソースコードからコンパイルしてインストールすることをお勧めします.
vtk8.2.0インストール方法:
まずVTK-8.2.0をダウンロードします.tar.gzとVTKdata-8.2.0.tar.gz、ダウンロードアドレス:https://vtk.org/download/
vtkを解凍し、vtkdataをvtkフォルダに解凍して、次のコマンドを実行します.
mkdir build
cd build
cmake ../ -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release -DVTK_WRAP_PYTHON=ON
make -j8
sudo make install

また、このサイトを参照してください.http://www.cb.uu.se/~johan/vtk/installing_vtk_on_rhel6.txt
二、aptを使ってインストールする
sudo apt-get install libpcl-dev

インストール後のコンパイルプロセスでライブラリファイルvtkproj 4が発生する可能性があります.so紛失の問題.この問題を解決するために、直接ソフトリンクで解決できます.コードは次のとおりです.
sudo ln -s /usr/lib/libvtkproj4.so.5.10 /usr/lib/libvtkproj4.so

注意:このコマンドを使用してインストールされているのはpcl 1です.7 Boost v 1が必要です58.もしあなたのboostライブラリのバージョンがこの上にあるならば、衝突が発生して、boostライブラリのバージョンを下げてあるいはpcl 1をインストールすることができます.7以上のバージョン.
三、ソースコードからpcl 1をインストールする.9.1:
1.ソースのダウンロード:https://github.com/PointCloudLibrary/pcl/releases
2.ファイルを解凍する
3.インストール、次のコマンドを順に実行します.
cd pcl-pcl-1.9.1 && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j2
sudo make -j2 install

4.上記の手順を実行すると、IDE(例えばKdevelop)のincludeの場合、/usr/includeのpclフォルダの名前がpcl 1であるため、kdevelopにpcl含むファイルが見つからないことがわかります.9 pcl 1を9のpclフォルダを/usr/includeに移動し、pcl 1を削除する.9、これでいいです.
四、よくある質問:
問題1. /data/anaconda3/lib/libcurl.so.4: no version information available (required by curl)
解決方法:
ステップ1:経路の表示
locate libcurl4.so.4

結果は次のとおりです.
/data/anaconda3/lib/libcurl.so.4
/data/anaconda3/lib/libcurl.so.4.5.0
/data/anaconda3/pkgs/libcurl-7.63.0-h20c2e04_1000/lib/libcurl.so.4
/data/anaconda3/pkgs/libcurl-7.63.0-h20c2e04_1000/lib/libcurl.so.4.5.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0

ステップ2:libcurlを検索します.so.4の接続
ls -l /data/anaconda3/lib/libcurl.so.4

結果は次のとおりです.
 /data/anaconda3/lib/libcurl.so.4 -> libcurl.so.4.5.0

ステップ3:削除して/usr/lib/x 86に再接続します.64-linux-gnu/libcurl.so.4
sudo rm /data/anaconda3/lib/libcurl.so.4
sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4 /data/anaconda3/lib/libcurl.so.4

ステップ4:チェック
ls -l /data/anaconda3/lib/libcurl.so.4

結果は次のとおりです.
lrwxrwxrwx 1 root root 38 6   19 13:31 /data/anaconda3/lib/libcurl.so.4 -> /usr/lib/x86_64-linux-gnu/libcurl.so.4

大成功!
しかし、変更後curlコマンドは実行できません.コンパイルに成功したら、ソフト接続を戻す必要があります.
問題2:コンパイルプロセスに類似の/usr/lib/libvtkIOが一連発生した.so.5.10.1: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'のエラー
OpenCVをインストールしたことがある場合は、一般的にlibtiff 5というライブラリをインストールしています.このライブラリのバージョンはvtkで呼び出す必要があるtiffライブラリのバージョンと一致しないため、上記のエラーが発生しました.libtiff 5をアンインストールしてからtiff 4を再インストールすることをお勧めします.0.4:
sudo apt-get remove libtiff5-dev

ダウンロードtiff 4.0.4:http://download.osgeo.org/libtiff/
解凍、tiff-4.0.4ディレクトリに入り、次のコマンドを実行します.
./configure
make
sudo make install

次にpclを再コンパイルします.
五、試験手順
1.tiでのコード機能は、点群データをlasファイルを.pcdファイル.ファイル名:las 2 pcd.cpp
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

int main (int argc, char *argv[])
{
    string filePath;	
    filePath=argv[1];

    std::cerr << "INFO : Loading : " << filePath << std::endl;
    
    //        PCL pointcloud  
    pcl::PointCloud<:pointxyzrgb> cloud;

    //   las  
    std::ifstream ifs(filePath.c_str(), std::ios::in | std::ios::binary);

    //       
    if(ifs.fail()) 
	{
        std::cerr << "ERROR : Impossible to open the file : " << filePath <<:endl return="" liblas::readerfactory="" f="" liblas::reader="" reader="f.CreateWithStream(ifs);" las="" unsigned="" long="" int="" nbpoints="reader.GetHeader().GetPointRecordsCount();" cloud.width="nbPoints;" cloud.height="1;" cloud.is_dense="false;" cloud.points.resize="" cout="" :="" cloud.points.size="" points="" detected="" in="" filepath="" endl="" i="0;" uint16_t="" r1="" g1="" b1="" rgb="" .las="" coded="" r2="" g2="" b2="" uint32_t="" value="" for="" .pcd="" while="" xyz="" cloud.points="" note:="" liblas="" the="" class="" can="" be="" accessed="" from="" within="" thus="" triple="" gets="" stores="" color="" demands="" an="" let="" convert="" them="" pcl="" particularity:="" must="" into="" one="" single="" integer="" and="" then="" reinterpret="" as="" float="">(&rgb);
					
	i++; 
    }
  
    //     
    pcl::io::savePCDFileASCII (argv[2], cloud);
  
    std::cerr << "Saved " << cloud.points.size () << " data points to pointcloud.pcd." << std::endl;

    return (0);
}

2.CMakeListファイルの作成
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(las2pcd)
find_package(PCL REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})

include_directories(/usr/include)

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

add_executable(las2pcd las2pcd.cpp)

target_link_libraries(las2pcd 
${PCL_COMMON_LIBRARIES}
${PCL_IO_LIBRARIES}
/usr/lib/liblas.so
/usr/lib/liblas_c.so
)

3.テスト
mkdir build
cd build
cmake ..
make -j2
./las2pcd las     pcd      

4.コードで#includeを使用している場合、次のエラーが発生する可能性があります.
 fatal error: pcl/visualization/cloud_viewer.h: No such file or directory,
その理由は、pclライブラリをコンパイルする際にvisualization関連のファイルが生成されていないためです.これは、cmakeのバージョンが低いためかもしれません.3.15.2など、新しいバージョンのcmakeを再インストールすることをお勧めします.