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

VSCode配置PCL1.11.1(CMakeLists.txt)

目录

1,相应环境配置

2,配置生成器

3,测试文件

4,拓展


1,相应环境配置

安装配置PCL:Win11 系统下 VisualStudio2022 配置点云库 PCL1.11.1_pcl1.11.0 vs2022-CSDN博客

安装完成之后记得配置环境变量:

查看是否有如下:

然后双击   系统变量  添加 :

 %PCL_ROOT%\3rdParty\FLANN\bin%PCL_ROOT%\3rdParty\Qhull\bin%PCL_ROOT%\3rdParty\OpenNI2\Tools%PCL_ROOT%\3rdParty\VTK\bin %PCL_ROOT%\bin%OPENNI2_REDIST64%

做完之后,重启电脑

新建一个项目:

2,配置生成器

终端输入:

cmake --help

这个带*的就是现在默认的cmake生成器,当然也可以将其替换为MinGW等,按自己需求来

3,测试文件

main.cpp

#include <iostream>
#include <vector>
#include <ctime>
#include <pcl/point_cloud.h>
#include <pcl/octree/octree.h>
#include <boost/thread/thread.hpp>
#include <pcl/visualization/pcl_visualizer.h>
using namespace std;
int
main(int argc, char** argv)
{srand((unsigned int)time(NULL));pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);// 创建点云数据cloud->width = 1000;cloud->height = 1;cloud->points.resize(cloud->width * cloud->height);for (size_t i = 0; i < cloud->points.size(); ++i){cloud->points[i].x = 1024.0f * rand() / (RAND_MAX + 1.0f);cloud->points[i].y = 1024.0f * rand() / (RAND_MAX + 1.0f);cloud->points[i].z = 1024.0f * rand() / (RAND_MAX + 1.0f);}pcl::octree::OctreePointCloudSearch<pcl::PointXYZ> octree(0.1);octree.setInputCloud(cloud);octree.addPointsFromInputCloud();pcl::PointXYZ searchPoint;searchPoint.x = 1024.0f * rand() / (RAND_MAX + 1.0f);searchPoint.y = 1024.0f * rand() / (RAND_MAX + 1.0f);searchPoint.z = 1024.0f * rand() / (RAND_MAX + 1.0f);//半径内近邻搜索vector<int>pointIdxRadiusSearch;vector<float>pointRadiusSquaredDistance;float radius = 256.0f * rand() / (RAND_MAX + 1.0f);cout << "Neighbors within radius search at (" << searchPoint.x<< " " << searchPoint.y<< " " << searchPoint.z<< ") with radius=" << radius << endl;if (octree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0){for (size_t i = 0; i < pointIdxRadiusSearch.size(); ++i)cout << "    " << cloud->points[pointIdxRadiusSearch[i]].x<< " " << cloud->points[pointIdxRadiusSearch[i]].y<< " " << cloud->points[pointIdxRadiusSearch[i]].z<< " (squared distance: " << pointRadiusSquaredDistance[i] << ")" << endl;}// 初始化点云可视化对象boost::shared_ptr<pcl::visualization::PCLVisualizer>viewer(new pcl::visualization::PCLVisualizer("显示点云"));viewer->setBackgroundColor(0, 0, 0);  //设置背景颜色为黑色// 对点云着色可视化 (red).pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>target_color(cloud, 255, 0, 0);viewer->addPointCloud<pcl::PointXYZ>(cloud, target_color, "target cloud");viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "target cloud");// 等待直到可视化窗口关闭while (!viewer->wasStopped()){viewer->spinOnce(100);boost::this_thread::sleep(boost::posix_time::microseconds(1000));}return (0);
}

CMakeLists.txt

把里面的路径替换为自己的PCL安装路径

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(main)# 设置C++标准
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 统一使用动态运行时库
if(MSVC)set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
endif()# 设置PCL路径
set(PCL_DIR "E:/PCL 1.11.1/cmake")# 查找PCL
find_package(PCL 1.11.1 REQUIRED COMPONENTS common octree visualization)# 查找Boost
find_package(Boost REQUIRED COMPONENTS thread system)# 设置包含目录
include_directories(${PCL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})# 添加可执行文件
add_executable(${PROJECT_NAME} main.cpp)# 链接PCL和Boost库
target_link_libraries(${PROJECT_NAME} ${PCL_LIBRARIES} ${Boost_LIBRARIES})# 添加Windows系统库
if(WIN32)target_link_libraries(${PROJECT_NAME}ws2_32winmmuser32kernel32)# 添加库目录link_directories("E:/PCL 1.11.1/lib")link_directories("E:/PCL 1.11.1/3rdParty/Boost/lib")
endif()# 添加编译定义
target_compile_definitions(${PROJECT_NAME} PRIVATE ${PCL_DEFINITIONS})

终端输入:

mkdir build
cd .\build\
cmake .. 

这里说明一下cmake .. 的作用:

CMake 是一个跨平台的构建系统生成工具,它本身不直接编译代码,而是根据你写的 CMakeLists.txt 脚本,生成对应平台的构建文件:

  • 在 Linux /macOS 上,默认生成 Makefile
  • 在 Windows + Visual Studio 上,默认生成 .sln 和 .vcxproj 工程文件
  • 在 Windows + MinGW 上,也会生成 Makefile
  • 也可以指定生成器,比如 Ninja、Xcode 等

所以我们这里的生成器就是  Windows + Visual Studio  也就是MSBuild

然后执行生成可执行文件:

cmake --build . --config release

cd 到release下,执行./main

4,拓展

上面cmake .. 操作,也可以直接在cmd命令后的命令行里直接执行,

然后在生成的build文件夹下,双击main.sln

右击main设置为启动项目

生成解决方案

也是在release文件夹下生成可执行文件 main.exe

点击开始执行:

http://www.dtcms.com/a/466011.html

相关文章:

  • 安装Wasm版的MoonBit工具链
  • 大气的金融网站品质好物推荐怎么上
  • 【MongoDB的RLE压缩数据存储】
  • PostIn入门到实战(10) - 如何通过测试计划+定时任务实现接口自动化回归测试
  • numpy -- 统计函数 mean() 函数简介
  • 做金融看哪些网站有哪些图片的制作方法
  • 莱芜网站优化排名公司网站添加cms
  • 【计算机通识】TCP/IP协议通俗讲解
  • sql的表join怎么学?
  • 丹徒区建设局网站做整合营销的网站
  • RTMP推拉流EasyDSS视频直播推流技术如何成为科研教学与融媒体结合的催化剂?
  • 长沙做黄叶和网站的公司有哪些卓越科技建站无锡做网站
  • 深圳做兼职的网站设计事业单位网站建设算固定资产吗
  • 安装提示缺库怎么办?快速补齐缺失组件方法
  • 多部分文件上传的时候 parseRequest(RequestContext) 总是报错
  • 专业个人网站建设哪个网站可以免费学编程
  • xtuoj string
  • Rocky9-ISCSI块存储
  • 做定制旅游最好的网站公司网站建设流程图
  • NVIDIA CUDA 镜像 Docker 容器化部署全流程
  • 免费成品网站下载湖南省住房和城乡建设厅网站
  • 传输层协议之UDP协议
  • 做电影网站怎么降低内存免费的oa办公系统排名
  • JAVA算法练习题day36
  • 【C++】 结构体(struct)
  • 西部计划资源合集
  • 微信导购网站怎么做视频教学怎么快速优化网站排名
  • 网址导航网站简单制作divi wordpress主题
  • Pytorch autoload机制自动加载树外扩展(Autoload Device Extension)
  • 网站关键词在哪设置WordPress瀑布流图片站