0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

vcpkg-最簡單的各版本pcl編譯方法介紹

3D視覺工坊 ? 來源:3DCV ? 2023-06-27 09:14 ? 次閱讀

1 什么是Vcpkg

VCPKG是微軟C++ 團(tuán)隊(duì)開發(fā)的適用于C 和C++ 庫的跨平臺(tái)開源軟件包管理器,它大大簡化了Windows、Linux 和macOS 上第三方庫相關(guān)的下載和配置操作。如果項(xiàng)目要使用第三方庫,建議通過 vcpkg來安裝它們。vcpkg同時(shí)支持開源和專有庫。

正是由于編譯開源庫的傳統(tǒng)方法的缺陷,所以出現(xiàn)了 Vcpkg,優(yōu)點(diǎn)如下:

自動(dòng)下載開源庫源代碼。

源碼包的緩存管理和版本管理,可以升級版本。

輕松編譯。

依賴關(guān)系檢查(會(huì)自動(dòng)下載依賴庫進(jìn)行編譯)。

無縫集成 Visual Studio,不需要設(shè)置庫文件、頭文件的所在目錄,自動(dòng)集成。

Visual Studio 全平臺(tái)支持,不僅支持 Debug/Release、x86/x64 編譯,還支持 UWP、ARM 平臺(tái)的編譯。

缺點(diǎn):

整個(gè)管理系統(tǒng)太過臃腫

調(diào)用的話會(huì)引入很多依賴庫

2 為什么要用Vcpkg

由于開源庫絕大部分都來源于 Linux 系統(tǒng),導(dǎo)致其工程文件、編譯系統(tǒng)都使用 gnu 系列工具,使得將其移植到 Windows 的 VC 開發(fā)環(huán)境下一直是難點(diǎn)。盡管最近幾年很多開源庫都支持了跨平臺(tái)的 CMake,但是編譯過程仍然復(fù)雜和多樣化。當(dāng)了解了這些還不夠,我們還需要考慮預(yù)先編譯出哪種類型的開源庫程序。

比如:Debug還是Release、動(dòng)態(tài)庫還是靜態(tài)庫、MD還是MT、32位還是64位。光是這三種組合就有16種可能性。有的還要考慮是否引用其他開源庫的功能,那么編譯類型的組合會(huì)更多。管理起來很麻煩。常見的編譯方式:

編譯方式 特點(diǎn) 舉例
configure、make 需要msys這樣的unix環(huán)境才可以編譯 ffmpeg
自定義編譯工具 需要學(xué)習(xí)特定的編譯命令和工具 openssl、boost
cmake 相對簡單輕松 libcurl
VC工程文件 這種最簡單,直接拿來即可編譯

3 如何使用Vcpkg

3.1 安裝

安裝 vcpkg 分為兩步:首先,克隆存儲(chǔ)庫,然后運(yùn)行引導(dǎo)腳本以生成 vcpkg 二進(jìn)制文件。該存儲(chǔ)庫可以克隆到任何地方,并且將包括引導(dǎo)后的 vcpkg 二進(jìn)制文件以及從命令行安裝的任何庫。

2 編譯vcpkg

Windows平臺(tái):在cmd中執(zhí)行Vcpkg工程目錄下的“bootstrap-vcpkg.bat”命令,編譯好后會(huì)在同級目錄下生成vcpkg.exe文件。

Linux平臺(tái):在命令行中執(zhí)行在vcpkg工程目錄下“sudo bash ./ bootstrap-vcpkg.sh”命令,會(huì)生成一個(gè)可執(zhí)行文件vcpkg。

定義環(huán)境變量 VCPKG_ROOT="/vcpkg"

3.2 查找能夠安裝的庫

.vcpkg.exesearch

常見的庫基本都有,Ogre、Osg、OpenCV、PCL、Eigen、Ceres、g2o等等,這些庫的安裝直接敲命令,內(nèi)部所有依賴關(guān)系都被人維護(hù)并測試通過。

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

3.3 安裝指定的庫

.vcpkg.exeinstall庫名字

安裝時(shí)候需要指定64/32,static/dynamic,還有運(yùn)行時(shí)是MT/Md光這幾個(gè)組合就有8種

.vcpkg.exeinstall庫名字:架構(gòu)-平臺(tái)-是否靜態(tài)庫

.vcpkg.exeinstallPCL:x64-windows-static

3.4 引用vcpkg中的庫

使用vs進(jìn)行使用

如果你想使用VS,打開任何新建工程都有環(huán)境的話vcpkg integrate install只是想讓某一個(gè)project有環(huán)境的話vcpkgintegrateproject然后在*vcpkgscriptsuildsystems目錄下會(huì)有.nupkg文件,借助VS的nuget管理器導(dǎo)入該配置文件即可。

使用cmake進(jìn)行使用

在cmakelists.txt 應(yīng)用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 移除某個(gè)庫

vcpkgremove庫名字

3.6 導(dǎo)出已經(jīng)安裝的開源庫

有的時(shí)候,一個(gè)項(xiàng)目組中有很多人,不需要每個(gè)人都參與編譯。一個(gè)人編譯好所有開源庫后到處給別人即可。有的時(shí)候也是出于備份的目的,也會(huì)導(dǎo)出已經(jīng)安裝的開源庫。導(dǎo)出可以執(zhí)行export指令。例如,我要導(dǎo)出jsoncpp庫,那么執(zhí)行:

.vcpkg.exeexportjsoncpp--7zip

注意,導(dǎo)出時(shí)必須指定導(dǎo)出的包格式。vcpkg支持5種導(dǎo)出包格式,有:參數(shù)格式–raw以不打包的目錄格式導(dǎo)出–nuget以nuget包形式導(dǎo)出–ifw我也不知道這是啥格式–zip以zip壓縮包形式導(dǎo)出–7zip以7z壓縮包形式導(dǎo)出一般地,導(dǎo)出包的格式為:vcpkg-export-<日期>-<時(shí)間>

4 使用Vcpkg安裝PCL

1、首先搜索pcl

.vcpkg.exesearchpcl

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

2、安裝PCL.vcpkg.exe install 庫名字:架構(gòu)-平臺(tái)-是否靜態(tài)庫以下命令表示安裝包含vtk和qt以來的pcl,編譯64位

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

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





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    593

    瀏覽量

    27397
  • C++語言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    6992
  • GNU
    GNU
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    17494
  • PCL
    PCL
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    13680

原文標(biāo)題:vcpkg-最簡單的各版本pcl編譯方法

文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Proteus各版本可用下載地址

    Proteus各版本可用下載地址
    發(fā)表于 08-15 14:41

    labview軟件及模塊下載地址(各版本

    labview軟件及模塊下載地址(各版本
    發(fā)表于 12-06 17:57

    proteus各版本控制器的區(qū)別

    弟弟想了解一下proteus各版本在控制器都包含了啥 網(wǎng)上找了一圈也沒找到主要是stm32這一部分的實(shí)在不行我就下個(gè)最新的就好了那應(yīng)該會(huì)有我想要的控制器
    發(fā)表于 01-13 09:06

    CAD如何導(dǎo)出天正各版本DWG圖紙?CAD圖形導(dǎo)出教程

    在CAD軟件中繪制完成DWG圖紙后,有些小伙伴會(huì)想要將浩辰圖檔導(dǎo)出為天正各版本的DWG圖紙或者各專業(yè)條件圖,此時(shí)該如何操作呢?其實(shí)很簡單。接下來的CAD教程就讓小編來給大家介紹一下國產(chǎn)CAD軟件
    發(fā)表于 05-08 16:13

    如何將CAD圖紙導(dǎo)出為天正各版本圖紙?

    當(dāng)我們在正版CAD軟件中繪制完成圖紙后,想要將其導(dǎo)出為天正各版本的DWG格式圖紙或者各專業(yè)條件圖時(shí)該如何操作呢?其實(shí)很簡單只需要調(diào)用浩辰CAD給排水軟件中的CAD圖形導(dǎo)出功能即可實(shí)現(xiàn),接下來就讓小編
    發(fā)表于 05-11 16:05

    CAD軟件中怎么導(dǎo)出天正各版本圖紙?

    在CAD軟件中繪制完成DWG圖紙后,有些小伙伴會(huì)想要將浩辰圖檔導(dǎo)出為天正各版本的DWG圖紙或者各專業(yè)條件圖,此時(shí)該如何操作呢?其實(shí)很簡單。接下來的CAD教程就讓小編來給大家介紹一下浩辰CAD給排水
    發(fā)表于 07-01 16:49

    PCL點(diǎn)云庫介紹及項(xiàng)目配置方式

    關(guān)于PCL點(diǎn)云庫,大家百度的時(shí)候可以找到很多相關(guān)的介紹,反正一堆專業(yè)性概念,相關(guān)的技術(shù)層面以及一些強(qiáng)大的應(yīng)用敘述云云,不過關(guān)于這些小編實(shí)在不感冒,能先把這個(gè)工具好好用起來再說吧。關(guān)于PCL相關(guān)的論壇
    發(fā)表于 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四款早起樹莓派產(chǎn)品的各項(xiàng)參數(shù)!
    發(fā)表于 01-06 11:12 ?0次下載

    一張圖帶你了解安卓各版本分布情況

    谷歌發(fā)布了Android操作系統(tǒng)最新的各版本分布數(shù)據(jù),數(shù)據(jù)顯示,Android Oreo和Nougat在過去幾周成為贏家。
    發(fā)表于 04-20 09:08 ?6192次閱讀
    一張圖帶你了解安卓<b class='flag-5'>各版本</b>分布情況

    樹莓派各版本差異對照表.pdf

    樹莓派各版本差異對照表
    發(fā)表于 05-07 14:57 ?0次下載

    PCL放置和編輯元件的方法有哪些詳細(xì)教程說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是PCL放置和編輯元件的方法有哪些詳細(xì)教程說明包括了:1查找元件和裝入元件庫,2放置元件,3編輯元件與對象,4調(diào)整原理圖中元件的封裝模型
    發(fā)表于 11-14 15:50 ?92次下載
    <b class='flag-5'>PCL</b>放置和編輯元件的<b class='flag-5'>方法</b>有哪些詳細(xì)教程說明

    AD22與各版本功能對比 _電子版

    AD22與各版本功能對比 _電子版
    發(fā)表于 03-03 14:14 ?0次下載

    Lane Tech HS PCL簡單的門傳感器

    電子發(fā)燒友網(wǎng)站提供《Lane Tech HS PCL簡單的門傳感器.zip》資料免費(fèi)下載
    發(fā)表于 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上使用自定義選項(xiàng)進(jìn)行安裝的一種方式。
    的頭像 發(fā)表于 10-26 09:36 ?1293次閱讀

    PCL中基礎(chǔ)下采樣介紹

    顧名思義,隨機(jī)下采樣就似乎在原始點(diǎn)云中隨機(jī)采樣一定點(diǎn)數(shù)的點(diǎn)。這種方法最終得到的點(diǎn)云數(shù)量也是固定的。 pcl::PointCloud ::Ptr cloud_sub( new pcl
    的頭像 發(fā)表于 11-21 17:03 ?922次閱讀
    <b class='flag-5'>PCL</b>中基礎(chǔ)下采樣<b class='flag-5'>介紹</b>