0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

vcpkg-最简单的各版本pcl编译方法介绍

3D视觉工坊 来源:3DCV 2023-06-27 09:14 次阅读

1 什么是Vcpkg

VCPKG是微软C++ 团队开发的适用于C 和C++ 库的跨平台开源软件包管理器,它大大简化了Windows、Linux 和macOS 上第三方库相关的下载和配置操作。如果项目要使用第三方库,建议通过 vcpkg来安装它们。vcpkg同时支持开源和专有库。

正是由于编译开源库的传统方法的缺陷,所以出现了 Vcpkg,优点如下:

自动下载开源库源代码。

源码包的缓存管理和版本管理,可以升级版本。

轻松编译。

依赖关系检查(会自动下载依赖库进行编译)。

无缝集成 Visual Studio,不需要设置库文件、头文件的所在目录,自动集成。

Visual Studio 全平台支持,不仅支持 Debug/Release、x86/x64 编译,还支持 UWP、ARM 平台的编译。

缺点:

整个管理系统太过臃肿

调用的话会引入很多依赖库

2 为什么要用Vcpkg

由于开源库绝大部分都来源于 Linux 系统,导致其工程文件、编译系统都使用 gnu 系列工具,使得将其移植到 Windows 的 VC 开发环境下一直是难点。尽管最近几年很多开源库都支持了跨平台的 CMake,但是编译过程仍然复杂和多样化。当了解了这些还不够,我们还需要考虑预先编译出哪种类型的开源库程序。

比如:Debug还是Release、动态库还是静态库、MD还是MT、32位还是64位。光是这三种组合就有16种可能性。有的还要考虑是否引用其他开源库的功能,那么编译类型的组合会更多。管理起来很麻烦。常见的编译方式:

编译方式 特点 举例
configure、make 需要msys这样的unix环境才可以编译 ffmpeg
自定义编译工具 需要学习特定的编译命令和工具 openssl、boost
cmake 相对简单轻松 libcurl
VC工程文件 这种最简单,直接拿来即可编译

3 如何使用Vcpkg

3.1 安装

安装 vcpkg 分为两步:首先,克隆存储库,然后运行引导脚本以生成 vcpkg 二进制文件。该存储库可以克隆到任何地方,并且将包括引导后的 vcpkg 二进制文件以及从命令行安装的任何库。

2 编译vcpkg

Windows平台:在cmd中执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令,编译好后会在同级目录下生成vcpkg.exe文件。

Linux平台:在命令行中执行在vcpkg工程目录下“sudo bash ./ bootstrap-vcpkg.sh”命令,会生成一个可执行文件vcpkg。

定义环境变量 VCPKG_ROOT="/vcpkg"

3.2 查找能够安装的库

.vcpkg.exesearch

常见的库基本都有,Ogre、Osg、OpenCV、PCL、Eigen、Ceres、g2o等等,这些库的安装直接敲命令,内部所有依赖关系都被人维护并测试通过。

937da7ae-1476-11ee-962d-dac502259ad0.png

3.3 安装指定的库

.vcpkg.exeinstall库名字

安装时候需要指定64/32,static/dynamic,还有运行时是MT/Md光这几个组合就有8种

.vcpkg.exeinstall库名字:架构-平台-是否静态库

.vcpkg.exeinstallPCL:x64-windows-static

3.4 引用vcpkg中的库

使用vs进行使用

如果你想使用VS,打开任何新建工程都有环境的话vcpkg integrate install只是想让某一个project有环境的话vcpkgintegrateproject然后在*vcpkgscriptsuildsystems目录下会有.nupkg文件,借助VS的nuget管理器导入该配置文件即可。

使用cmake进行使用

在cmakelists.txt 应用vcpkg

set(CMAKE_TOOLCHAIN_FILE"G:/LIB/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake")
#或者
set(VCPKG_ROOT"${CMAKE_SOURCE_DIR}/../vcpkg/scripts/buildsystems/vcpkg.cmake"CACHEPATH"")
set(CMAKE_TOOLCHAIN_FILE${VCPKG_ROOT})

3.5 移除某个库

vcpkgremove库名字

3.6 导出已经安装的开源库

有的时候,一个项目组中有很多人,不需要每个人都参与编译。一个人编译好所有开源库后到处给别人即可。有的时候也是出于备份的目的,也会导出已经安装的开源库。导出可以执行export指令。例如,我要导出jsoncpp库,那么执行:

.vcpkg.exeexportjsoncpp--7zip

注意,导出时必须指定导出的包格式。vcpkg支持5种导出包格式,有:参数格式–raw以不打包的目录格式导出–nuget以nuget包形式导出–ifw我也不知道这是啥格式–zip以zip压缩包形式导出–7zip以7z压缩包形式导出一般地,导出包的格式为:vcpkg-export-<日期>-<时间>

4 使用Vcpkg安装PCL

1、首先搜索pcl

.vcpkg.exesearchpcl

93c51206-1476-11ee-962d-dac502259ad0.png

2、安装PCL.vcpkg.exe install 库名字:架构-平台-是否静态库以下命令表示安装包含vtk和qt以来的pcl,编译64位

.vcpkg.exeinstallPCL[vtk,qt]:x64-window

注意:vs要包含英文语言包





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26911
  • C++语言
    +关注

    关注

    0

    文章

    146

    浏览量

    6878
  • GNU
    GNU
    +关注

    关注

    0

    文章

    141

    浏览量

    17333
  • PCL
    PCL
    +关注

    关注

    1

    文章

    31

    浏览量

    13597

原文标题:vcpkg-最简单的各版本pcl编译方法

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Proteus各版本可用下载地址

    Proteus各版本可用下载地址
    发表于 08-15 14:41

    labview软件及模块下载地址(各版本

    labview软件及模块下载地址(各版本
    发表于 12-06 17:57

    proteus各版本控制器的区别

    弟弟想了解一下proteus各版本在控制器都包含了啥 网上找了一圈也没找到主要是stm32这一部分的实在不行我就下个最新的就好了那应该会有我想要的控制器
    发表于 01-13 09:06

    CAD如何导出天正各版本DWG图纸?CAD图形导出教程

    在CAD软件中绘制完成DWG图纸后,有些小伙伴会想要将浩辰图档导出为天正各版本的DWG图纸或者各专业条件图,此时该如何操作呢?其实很简单。接下来的CAD教程就让小编来给大家介绍一下国产CAD软件
    发表于 05-08 16:13

    如何将CAD图纸导出为天正各版本图纸?

    当我们在正版CAD软件中绘制完成图纸后,想要将其导出为天正各版本的DWG格式图纸或者各专业条件图时该如何操作呢?其实很简单只需要调用浩辰CAD给排水软件中的CAD图形导出功能即可实现,接下来就让小编
    发表于 05-11 16:05

    CAD软件中怎么导出天正各版本图纸?

    在CAD软件中绘制完成DWG图纸后,有些小伙伴会想要将浩辰图档导出为天正各版本的DWG图纸或者各专业条件图,此时该如何操作呢?其实很简单。接下来的CAD教程就让小编来给大家介绍一下浩辰CAD给排水
    发表于 07-01 16:49

    PCL点云库介绍及项目配置方式

    关于PCL点云库,大家百度的时候可以找到很多相关的介绍,反正一堆专业性概念,相关的技术层面以及一些强大的应用叙述云云,不过关于这些小编实在不感冒,能先把这个工具好好用起来再说吧。关于PCL相关的论坛
    发表于 07-02 07:44

    raspberry_pi各版本差别

    raspberry pi 各版本差别,对比Raspberry Pi Model B+、Raspberry Pi Model B、Raspberry Pi Model A、Raspberry Pi Compute Module Dev Kit四款早起树莓派产品的各项参数!
    发表于 01-06 11:12 0次下载

    一张图带你了解安卓各版本分布情况

    谷歌发布了Android操作系统最新的各版本分布数据,数据显示,Android Oreo和Nougat在过去几周成为赢家。
    发表于 04-20 09:08 5885次阅读
    一张图带你了解安卓<b class='flag-5'>各版本</b>分布情况

    树莓派各版本差异对照表.pdf

    树莓派各版本差异对照表
    发表于 05-07 14:57 0次下载

    PCL放置和编辑元件的方法有哪些详细教程说明

    本文档的主要内容详细介绍的是PCL放置和编辑元件的方法有哪些详细教程说明包括了:1查找元件和装入元件库,2放置元件,3编辑元件与对象,4调整原理图中元件的封装模型
    发表于 11-14 15:50 92次下载
    <b class='flag-5'>PCL</b>放置和编辑元件的<b class='flag-5'>方法</b>有哪些详细教程说明

    AD22与各版本功能对比 _电子版

    AD22与各版本功能对比 _电子版
    发表于 03-03 14:14 0次下载

    Lane Tech HS PCL简单的门传感器

    电子发烧友网站提供《Lane Tech HS PCL简单的门传感器.zip》资料免费下载
    发表于 11-21 11:06 0次下载
    Lane Tech HS <b class='flag-5'>PCL</b><b class='flag-5'>简单</b>的门传感器

    在Ubuntu上编译安装pcl教程

    编译安装PCL(Point Cloud Library)是在Ubuntu上使用自定义选项进行安装的一种方式。
    的头像 发表于 10-26 09:36 430次阅读

    PCL中基础下采样介绍

    顾名思义,随机下采样就似乎在原始点云中随机采样一定点数的点。这种方法最终得到的点云数量也是固定的。 pcl::PointCloud ::Ptr cloud_sub( new pcl
    的头像 发表于 11-21 17:03 437次阅读
    <b class='flag-5'>PCL</b>中基础下采样<b class='flag-5'>介绍</b>