VS中PCL库附加依赖项配置过程解析

 更新时间:2022年07月22日 10:06:43   作者:life_limbo  
这篇文章主要介绍了VS中PCL库附加依赖项配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在VS中使用PCL库通常要经过一些配置,参考https://www.jb51.net/article/256416.htm教程中第一部分PCL安装及在VS2013中使用PCL。

其中包含目录和库目录的设置都简单,根据自己安装目录的差别略有不同;但是附加依赖项则较为复杂一点,主要是因为附加依赖项太多了。很多情况下我们配置附加依赖项都是直接复制网上教程中别人的附加依赖项,对于不同版本的PCL可能附加依赖项就会略有不同,全盘复制很有可能导致link error,有些依赖项找不到有些又缺失。其实附加依赖项可以在配置的各个库目录中找到,打开PCL安装目录下的各个库目录比如VTK下的库目录可以看到VTK所需的依赖项:

各个库目录中的所有.lib文件就是我们的附加依赖项,但是这里要把他们区分为debug模式下的依赖项和release模式下的依赖项,而且.lib文件数量繁多,自己复制这些文件名还要分成debug、release两拨确实太多了。我们可以用批处理命令来帮我们执行。

观察各个库目录可知调试模式和发行模式的分别,在%PCL_ROOT%\lib下的.lib文件加了debug和release来区分,%PCL_ROOT%\3rdParty\Boost\lib下的以有gd的为debug模式否则为release模式,其他各个库目录也都有类似规律,所以可以在各个库目录下写批处理文件导出.lib依赖项:

1.在%PCL_ROOT%\lib下新建文本文档,改后缀名为.bat,笔记本打开编辑如下内容:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt      //解释:对每一个(*.lib)通配符匹配到的文件名I,显示I到文件all.txt,之后的语句类似理解就可
for %%I in (*debug.lib) do echo %%I>>adebug.txt
for %%I in (*release.lib) do echo %%I>>arelease.txt
pause

则会生成adebug.txt保存debug模式下的依赖项、arelease.txt保存release模式下的依赖项、all.txt保存所有依赖项,如下:

2.在%PCL_ROOT%\3rdParty\Boost\lib下编写:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*mt-gd-1_64.lib) do echo %%I>>adebug.txt
for %%I in (*mt-1_64.lib) do echo %%I>>arelease.txt
pause

3.在%PCL_ROOT%\3rdParty\OpenNI2\Lib下只有一个不必用批处理,自己抄一下名称就好;在%PCL_ROOT%\3rdParty\FLANN\lib和%PCL_ROOT%\3rdParty\Qhull\lib下因为不太多故将所有.lib导出到一个all.txt文件然后自己根据有没有_d区分debug和release版本:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
pause

4.在%PCL_ROOT%\3rdParty\VTK\lib下根据有无-gd区分debug和release,编写bat文件如下:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*8.0.lib) do echo %%I>>arelease.txt
for %%I in (*c++.lib) do echo %%I>>arelease.txt
for %%I in (*-gd.lib) do echo %%I>>adebug.txt
pause

最后把所有debug模式下依赖项汇总,把所有release模式下的依赖项汇总即得到设置中所需要的依赖项。另外如果想更简单一点可以把以上的输出文件名改为同一个,这样可以所有debug的输出到一个debug.txt,所有release的输出到一个release.txt,不过要注意的是文件名要使用绝对路径。

到此这篇关于VS中PCL库附加依赖项配置的文章就介绍到这了,更多相关VS PCL库附加依赖项内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于C语言的库封装发布技术详解

    基于C语言的库封装发布技术详解

    在编程的过程中,使用已经封装好的库函数是十分方便的,也是十分高效的,这篇文章主要给大家介绍了关于C语言库的封装和使用的相关资料,需要的朋友可以参考下
    2021-08-08
  • C++实现LeetCode(82.移除有序链表中的重复项之二)

    C++实现LeetCode(82.移除有序链表中的重复项之二)

    这篇文章主要介绍了C++实现LeetCode(82.移除有序链表中的重复项之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C/C++指针介绍与使用详解

    C/C++指针介绍与使用详解

    不知从何时起对你一眼万年,从此,每一天被赋予了特别的意义。时隔多年,依然挥之不去是你------指针!!!本篇中几乎数据类型只用了int,但是float、double等也是可以的
    2022-08-08
  • C++使用宏实现动态库加载

    C++使用宏实现动态库加载

    开发的时候,有些项目不能静态链接动态库,需要程序运行时加载动态库。本文将使用宏来实现动态库的加载,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • 探究c++虚表实现代码

    探究c++虚表实现代码

    虚表是一种利用程序语言实现的dynamic dispatch机制,或者说runtime method binding机制,也就是我们说的多态。本文简单探究虚表实现方法,一起看看吧
    2021-09-09
  • C++标准模版库(STL)之vector容器详解

    C++标准模版库(STL)之vector容器详解

    vector的功能和水桶一样,就是用来装东西的,并且vector还提供了迭代器来很方便的访问这些数据,下面就让我们一起看下如何使用C++的vector吧
    2023-03-03
  • C语言实现基于最大堆和最小堆的堆排序算法示例

    C语言实现基于最大堆和最小堆的堆排序算法示例

    这篇文章主要介绍了C语言实现基于最大堆和最小堆的堆排序算法示例,分别是基于最大堆的升序排序和基于最小堆的降序排序实例,需要的朋友可以参考下
    2016-06-06
  • Visual Studio 2022下载及配置OpenCV4.5.5的详细过程

    Visual Studio 2022下载及配置OpenCV4.5.5的详细过程

    这篇文章主要介绍了Visual Studio 2022下载及配置OpenCV4.5.5的详细过程,在这里注意下Win10的64位操作系统,在OpenCV官网下载OpenCV4.5.5,安装的是Win pack,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • C++多继承(多重继承)的实现

    C++多继承(多重继承)的实现

    多继承容易让代码逻辑复杂、思路混乱,本文主要介绍了C++多继承(多重继承)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Qt QString的使用实现

    Qt QString的使用实现

    本文主要介绍了Qt QString的使用实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论