• Win10 VS2013 PCL1.8.1和依赖项VTK8.0.1, QHuall(2.15.2), FLANN1.9.1,Boost1.59.0,Zbil1.2.11和libPNG1.6.34编译安装


    编译和安装过程最好使用管理员权限去操作,避免不必要的错误。

    一般而言为了区分Debug和Release库,添加输入变量

    Name: CMAKE_DEBUG_POSTFIX 
    Type: STRING 
    Value: -gd 

    QHuall和FLANN没有出现异常

    Boost1.59.0

    1.在下载目录先运行

    bootstrap.bat

    2.创建debug和release版本的动态和静态库

    bjam.exe variant=debug,release link=shared,static threading=multi,single 

    VTK8.0.1 

    1. VTK8.0.1 安装,此处添加了QT5的支持,configure之后

    2. 在Search中输入Qt,找到VTK_Group_Qt,勾选,继续Configure

    3.中途会出现错误,这是由于Qt版本较高并且Cmake找不到qmake.exe文件导致的(VTK-8.0.1默认查找Qt4的qmake.exe), 解决方式:在VTK_QT_VERSION中选择5版本并在QT_QMAKE_EXECUTABLE中选择qmake.exe所在目录,并选中它,然后Configure,如果qt5的环境变量设置好的话,QT的相关路径cmake可以自动查找到,否则则需要自己添加(每个人出现的问题可能不同,一般都是QT5_DIR, Qt5Core_DIR、Qt5Gui_DIR等目录找不到,但解决方法是一样的,在D:AppsQtQt5.6.3-X865.6.3msvc2013libcmake中选中相应文件夹即可)。

    4. 之后就是利用Visual Studio 2013进行编译安装了

    编译错误 error MSB6006:”cmd.exe” exited with code 1 解决方法

    该报错是因为CMake中勾选了BUILD_TESTING选项,而CMake的VTK_DATA_ROOT先设置不正确,导致编译时需要先下载vtkdata数据。由于网速或者没有科学上网等原因下载数据的时间 超过了设置的最大等待时间。https://www.vtk.org/download/到此网站下载对应版本的VTKData.zip/VTKData.tar.gz文件,将其解压文件中MD5文件覆盖二进制目录下ExternalDataObjectsMD5文件。进行步骤4即可。

    Cmake编译支持QT的VTK,生成vtkGUISupportQt-6.1.dll和QVTKWidgetPlugin.dll两个文件放在$(QTDIR)pluginsdesigner下即可在Qt Designer下面看到VTKWidgets插件

    Eigen

    eigen都是头文件,不需要编译,编译PCL时申明它的位置就可以。

    OPENNI未安装

    ZLIB和LIPNG

    首先编译安装ZLIB,环境变两种配置ZLIB_ROOT和在PATH加入ZLIB的bin目录,之后再去编译LIBPNG.

    PCL

    VS编译PCL1.8,出现如下错误:

    error C2039: “Literal”: 不是“Eigen::NumTraits<pcl::ndt2d::NormalDist<PointT>>”的成员        d:pcl3rdpartysrccodeeigenincludeeigen3eigensrcCoreutilXprHelper.h        74error C2065: “Literal”: 未声明的标识符        d:pcl3rdpartysrccodeeigenincludeeigen3eigensrcCoreutilXprHelper.h        74error C2146: 语法错误: 缺少“,”(在标识符“Literal”的前面)        d:pcl3rdpartysrccodeeigenincludeeigen3eigensrcCoreutilXprHelper.h        74error C2664: “Eigen::aligned_allocator<U>::aligned_allocator(const Eigen::aligned_allocator<U> &)”: 无法将参数 1 从“std::allocator<T>”转换为“const Eigen::aligned_allocator<U> &”        D:PCL3rdPartySrcCodeoostoostunordereddetailallocate.hpp        489error C2664: “Eigen::aligned_allocator<U>::aligned_allocator(const Eigen::aligned_allocator<U> &)”: 无法将参数 1 从“std::allocator<T>”转换为“const Eigen::aligned_allocator<U> &”        D:PCL3rdPartySrcCodeoostoostunordereddetailallocate.hpp        489error C2664: “Eigen::aligned_allocator<U>::aligned_allocator(const Eigen::aligned_allocator<U> &)”: 无法将参数 1 从“std::allocator<T>”转换为“const Eigen::aligned_allocator<U> &”        D:PCL3rdPartySrcCodeoostoostunordereddetailallocate.hpp        489error C2975: “ConvertibleToLiteral”:“Eigen::internal::promote_scalar_arg_unsupported”的模板参数无效,应为编译时常量表达式        d:pcl3rdpartysrccodeeigenincludeeigen3eigensrcCoreutilXprHelper.h        74error LNK1181: 无法打开输入文件“..libpcl_surface_release.lib”        D:PCLPCLSrcCodePCLuild	oolsLINK
    error LNK1181: 无法打开输入文件“..libpcl_surface_release.lib”        D:PCLPCLSrcCodePCLuild	oolsLINK
    error LNK1181: 无法打开输入文件“..libpcl_surface_release.lib”        D:PCLPCLSrcCodePCLuild	oolsLINK
    error LNK1181: 无法打开输入文件“..libpcl_surface_release.lib”        D:PCLPCLSrcCodePCLuild	oolsLINK
    error LNK1181: 无法打开输入文件“..libpcl_surface_release.lib”        D:PCLPCLSrcCodePCLuild	oolsLINK
    error LNK1181: 无法打开输入文件“..libpcl_surface_release.lib”        D:PCLPCLSrcCodePCLuild	oolsLINK

    因为Eigen版本的问题。因为PCL还没有支持Eigen3.2.8以上版本的原因。所以,我将3.3.4版本的Eigen换成了3.2.8

  • 相关阅读:
    WebStorm 简单部署服务器进行测试操作
    springbootstarterthymeleaf 避坑指南
    在linux云服务器上运行Jar文件
    springBoot整合MyBatise及简单应用
    关闭tomcat端口号
    基本项目框架搭建 sqlserver druid配置
    java springboot+maven发送邮件
    SQLServer 的存储过程与java交互
    Java 读写锁的实现
    SpringBoot 异步线程简单三种样式
  • 原文地址:https://www.cnblogs.com/flyinggod/p/8031414.html
Copyright © 2020-2023  润新知