网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2023-06-27 09:14

人气:

作者:admin

标签: GNU  Linux系统  PCL  C++语言 

导读:VCPKG是微软C++ 团队开发的适用于C 和C++ 库的跨平台开源软件包管理器,它大大简化了Windows、Linux 和macOS 上第三方库相关的下载和配置操作。...

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要包含英文语言包





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信