当前位置: 首页 > news >正文

C++ PCL库 预编译安装与排错:common is required but boost was not found

C++ PCL库 预编译安装与排错:common is required but boost was not found

  • 摘要
  • 安装与排错

摘要

本篇博客记录了Windows平台上C++ PCL库通过预编译安装的方法与排错过程

环境
平台X86 Win10
PCL15.0 realease All in One
CMakeWindows 3.29.0
Visual Studio2022版

安装与排错

  • 安装Visual Studio编译器(限制用户使用Visual Studio编译器)
  • 安装CMake项目构建管理工具(版本要求>2.8.3)
  • 下载All in one安装包和对应的PDB文件包(用于后期单步调试)
image-20250602212857055
  • 安装:运行All in one安装包,进行安装

    • 3rdParty:包含第三方开源库
    • bin:编译好的PCL相关的.dll动态库与示例exe文件
    • cmake:包含PCL库相关的cmake配置文件,在建立工程时,利用此文件寻找第三方包和PCL对应的include和lib目录
    • include:PCL的头文件
    • lib:PCL的静态库和动态库.lib入口文件
    • share:帮助文档
    image-20250602215437757
  • 问题:由于Windows系统的对系统环境变量长度有限制,导致安装All In One安装包时,自动增加系统环境变量时导致出错。此时需要手动添加系统环境变量(参考:配置PCL过程中提示 path too long installer unable to modify path解决_win11系统安装pcl报错warning! path too long installer una-CSDN博客)

  • 解压PDB压缩包并放入PCL安装目录下的bin文件夹中

  • 验证是否安装成功,参考Projecting points using a parametric model — Point Cloud Library 0.0 documentation

    • 新建项目文件和CMakeLists.txt文件
    ### project_inliers.cpp
    #include <iostream>
    #include <pcl/point_cloud.h> // for PointCloud
    #include <pcl/point_types.h>
    #include <pcl/ModelCoefficients.h>
    #include <pcl/filters/project_inliers.h>intmain ()
    {pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_projected (new pcl::PointCloud<pcl::PointXYZ>);// Fill in the cloud datacloud->width  = 5;cloud->height = 1;cloud->points.resize (cloud->width * cloud->height);for (auto& point: *cloud){point.x = 1024 * rand () / (RAND_MAX + 1.0f);point.y = 1024 * rand () / (RAND_MAX + 1.0f);point.z = 1024 * rand () / (RAND_MAX + 1.0f);}std::cerr << "Cloud before projection: " << std::endl;for (const auto& point: *cloud)std::cerr << "    " << point.x << " "<< point.y << " "<< point.z << std::endl;// Create a set of planar coefficients with X=Y=0,Z=1pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients ());coefficients->values.resize (4);coefficients->values[0] = coefficients->values[1] = 0;coefficients->values[2] = 1.0;coefficients->values[3] = 0;// Create the filtering objectpcl::ProjectInliers<pcl::PointXYZ> proj;proj.setModelType (pcl::SACMODEL_PLANE);proj.setInputCloud (cloud);proj.setModelCoefficients (coefficients);proj.filter (*cloud_projected);std::cerr << "Cloud after projection: " << std::endl;for (const auto& point: *cloud_projected)std::cerr << "    " << point.x << " "<< point.y << " "<< point.z << std::endl;return (0);
    }
    
    # CMakeLists.txt
    cmake_minimum_required(VERSION 3.5 FATAL_ERROR)project(project_inliers)find_package(PCL 1.2 REQUIRED)include_directories(${PCL_INCLUDE_DIRS})
    link_directories(${PCL_LIBRARY_DIRS})
    add_definitions(${PCL_DEFINITIONS})add_executable (project_inliers project_inliers.cpp)
    target_link_libraries (project_inliers ${PCL_LIBRARIES})
    
    • CMake项目构建
    image-20250604132027687

    配置后出现报错,Boost的配置文件没有被正确找到,修改PCL的cmake文件(PCL的安装路径/cmake/PCLConfig.cmake),修改其中的find_boost方法,去掉其中cmake寻找Boost语句的CONFIG参数
    在这里插入图片描述

    随后点击Generate,完成项目的构建

    • Visual Studio项目编译、生成可执行文件

      双击.sln工程配置文件,通过VS进行编译运行

    image-20250604170858003

    项目编译成功,但是由于项目配置原因,运行可执行程序时,没有找到正确可执行程序,VS报错

在这里插入图片描述

点击本地Windows调试器的配置项 → 配置启动项目 → 修改单启动项目 重新运行即可

在这里插入图片描述

在这里插入图片描述

相关文章:

  • ROS2性能狂飙:C++11移动语义‘偷梁换柱’实战
  • 爬虫学习记录day1
  • 【Linux庖丁解牛】—自定义shell的编写!
  • Elasticsearch的搜索流程描述
  • 《Docker》架构
  • 舆情监控系统爬虫技术解析
  • 针对KG的神经符号集成综述 两篇
  • 如何判断是 CPU 密集还是 IO 密集型任务?
  • 深入理解CSS浮动:从基础原理到实际应用
  • Python_day44
  • 在C++中,头文件(.h或.hpp)的标准写法
  • 修改 Windows 10/11 的系统设置中显示的安装日期
  • 卡特兰数简单介绍
  • 栈-20.有效的括号-力扣(LeetCode)
  • [Java 基础]类,面向对象的蓝图
  • 策略公开了:年化494%,夏普比率5.86,最大回撤7% | 大模型查询akshare,附代码
  • 艾利特协作机器人:重新定义工业涂胶场景的精度革命
  • Redis初入门
  • 轴承排列自动运行 定时器 外中断 PWM部分程序
  • 2024国产PLM应用案例:河南携路机械
  • 如何做自己的电影网站/云优化软件
  • 网站程序授权怎么做/vivo应用商店
  • 可以做外贸的网站有哪些/app网站
  • 杭州做企业网站/百度贴吧热线客服24小时
  • 今日国内最新头条新闻/百度seo服务公司
  • 动画形式的h5在哪个网站做/百度seo推广怎么收费