⼆、PLC安装踩坑总结(Ubuntu16.4+PCL1.8.1+VTK7.1+Qt5.9.9)
⼆、PLC安装踩坑总结(Ubuntu 16.4+PCL1.8.1+VTK7.1+Qt5.9.9)
问题解决暂未更完、、、
⽂章⽬录
毕设相关,装⼀下PCL库。听说官⽹推荐的安装⽅法不很稳定,以及看到【】,想都没想,别⼈我不知道能不能⼀次成功,我肯定是不得⾏的(果然装了⽆数遍),⽼⽼实实编译源码。
⼀、写在前⾯
安装经历:
台式机(有anaconda环境,许多依赖⽂件和库与PCL中冲突,⽐较难搞)、笔记本。
都是Ubuntu 16.4+PCL1.8.1+VTK7.1+Qt5.9.9。
#官⽹推荐安装⽅法
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all
每次装什么软件我都抱着殊死⼀搏的勇⽓(因为总能把各种问题集结个遍、、⼿动狗头)。搜了⼀些教程贴,感觉,也很easy嘛,也就安装的依赖项多了些、时间长了些、、naive!!too naive!!!
先总结:
成功栗⼦PCL1.8.1+VTK7.1.1+Qt5.9.9
失败栗⼦PCL1.11.1+VTK5.10.1+Qt4.8.2PCL1.11.1+VTK6.2.0+Qt5.9.9PCL1.11.1+VTK8.2.1+Qt5.9.9PCL1.11.1+VTK7.1.1+Qt4.8.2PCL1.8.1+VTK6.2.1+Qt5.9.9
期间试错⽆数,以为少了某些依赖,其实就是PCL和VTK的版本没对上,强推⼀波在笔记本上最终安装的成功教程《》。
【师兄说1.9以上版本可能不太稳定,考虑到课题组内部⼯作的衔接⽅便,就从1.11.1改成了1.8.1版本。想装什么版本根据⾃⼰需要随意哈~】
正确搭配PCL-1.7.2 + VTK-5.10.1 / VTK-6.2.0PCL-1.8.1 + VTK-7.1.1PCL-1.9.1 + VTK-8.2.0 Qt主版本需要5以上(ubuntu16.04⾃带4.8.7版本)
下载地址:
官⽹选择合适的Qt版本下载:
官⽹选择合适的VTK版本下载:
官⽹选择合适的PCL版本下载:
(先放链接,具体安装见下⽂详述)
⼆、安装过程
总结发现有两种⽅法
1.VTK放在依赖项中安装
先搜了⼀下安装教程,《》和《》,先向⼤佬致谢!(以上尝试失败)
安装依赖项(以上2篇⽂章的安装步骤都⼀样的,直接贴⼀下代码)
为什么现在都用cmake
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
#(实现可视化需要更新的vtk版本,可以使⽤sudo apt-get install libvtk + Tab 补全查⾃⼰需要的版本。
#建议sudo apt-get install libvtk6.2 libvtk6.2-qt libvtk6-dev,安装主版本6以上的,vtk关系到PCL可视化模块的使⽤)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
从github上下载PCL源码
git clone github/PointCloudLibrary/pcl.git
#特别提⽰:直接git默认下载最新版本的,当前时间节点下我下载得到了1.11.1版本,跟依赖中的VTK版本是不匹配的,导致安装失败。#建议在官⽹选择需要安装的版本,并匹配正确的VTK和Qt。
编译:(各个帖⼦都提醒这⼀步很漫长,可我并没觉得很漫长,⾁眼可见地编译完了,还悄悄地喜滋滋~~呔!)
cd pcl
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \
-DCMAKE_INSTALL_PREFIX=/usr ..
make
安装:
sudo make install
顺利的话(没报错error,有warning⼀般没关系),到此就安装成功了,赶紧测试吧~
2.官⽹下载合适的VTK版本,单独编译
安装依赖项
,感恩感谢!但是⾥⾯的安装包链接似乎有问题,正确官⽹链接已经写在本⽂最开始了。
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 libboost-all-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 libopenni-dev libopenni2-dev
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev
sudo apt-get install libxmu-dev libxmuu-dev
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
下载解压编译PCL源码并安装
tar -xzvf pcl-pcl-1.8. #解压缩
cd pcl-pcl-1.8.1 #切换到上⾯解压的⽂件夹,也可以更改⽂件夹名字
error,有warning⼀般没关系),到此就安装成功了,赶紧测试吧~
3.PCL及VTK卸载
安装过程主要是cmake 和make编译后, build⽂件夹下会⽣成⼯程⽂件。把build⽂件夹及内容删除,再删除⽤户⽬录下带”libpcl“的⽂
#新建pcl_test.cpp⽂件:
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
int main(int argc, char **argv){
std::cout <<"Test PCL !!!"<< std::endl;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>); uint8_t r(255), g(15), b(15);
for(float z(-1.0); z <=1.0; z +=0.05)
{
for(float angle(0.0); angle <=360.0; angle +=5.0)
{
pcl::PointXYZRGB point;
point.x =0.5 * cosf (pcl::deg2rad(angle));
point.y = sinf (pcl::deg2rad(angle));
point.z = z;
uint32_t rgb =(static_cast<uint32_t>(r)<<16|
static_cast<uint32_t>(g)<<8| static_cast<uint32_t>(b));
point_cloud_ptr->points.push_back (point);
}
if(z <0.0)
{
r -=12;
g +=12;
}
else
{
g -=12;
b +=12;
}
}
point_cloud_ptr->width =(int) point_cloud_ptr->points.size ();
point_cloud_ptr->height =1;
pcl::visualization::CloudViewer viewer ("test");
viewer.showCloud(point_cloud_ptr);
while(!viewer.wasStopped()){};
return0;
}
#新建⽂件:
cmake_minimum_required(VERSION 2.6)
project(pcl_test)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test pcl_test.cpp)
target_link_libraries (pcl_test ${PCL_LIBRARIES})
install(TARGETS pcl_test RUNTIME DESTINATION bin)
同时还要新建⼀个build⽂件,编译的时候会⾃动⽣成⼯程配置⽂件,打开终端执⾏:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论