VS中PCL库附加依赖项配置

在VS中使用PCL库通常要经过一些配置,参考https://www.cnblogs.com/blog-vincent-0x1F7/p/9507631.html教程中第一部分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,不过要注意的是文件名要使用绝对路径。

原文地址:https://www.cnblogs.com/blog-vincent-0x1F7/p/9646358.html

时间: 2024-12-29 07:21:10

VS中PCL库附加依赖项配置的相关文章

VS中包含目录、附加依赖项、库目录及具体设置

包含目录:#include <headerfile.h>中headerfile.h的搜索目录. 如果有XXX.h找不到,设置这个目录可以解决. 附加依赖项:C++的库会把函数.类的声明放在*.h中,实现放在*.cpp或*.cc中.编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码. 所以,要使用一个库,除了要include他的头文件以外,还要在链接过程中把lib加进去.这个就是在附加链接库中设置. 其实,一般的库会用#pragma comment(lib,&q

VC包含目录、附加依赖项、库目录及具体设置

包含目录:#include <headerfile.h>中headerfile.h的搜索目录. 如果有XXX.h找不到,设置这个目录可以解决. 附加依赖项:C++的库会把函数.类的声明放在*.h中,实现放在*.cpp或*.cc中.编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码.所以,要使用一个库,除了要include他的头文件以外,还要在链接过程中把lib加进去.这个就是在附加链接库中设置.其实,一般的库会用#pragma comment(lib,&quo

附加依赖项、库目录、包含目录

附加依赖项(lib): 一种逻辑关系,a依赖b. 库目录(libs): 包含目录(include): https://blog.csdn.net/u012043391/article/details/54972127 VS项目中的包含目录.库目录.附加包含目录.附加库目录.附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下: VC++目录: 包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录 库目录:寻找.lib文件的搜索目

android gradle 依赖项配置变更

在gradle-4.0之前的版本,引入依赖包时,都是按下面的做法 compile 'com.facebook.fresco:animated-gif:0.13.0' 但Android Studio 版本更新至3.0 的gradle-4.0版本中,包依赖配置语句做了修改,变成以下用法: implementation 'com.facebook.fresco:animated-gif:0.13.0' 或者 api 'com.facebook.fresco:animated-gif:0.13.0' 以

附加依赖 和 附加库文件夹 使用之间的区别是什么?

附加依赖 它指的是条目,作为一个.LIB档. 附加库文件夹 你用 #pragma comment(lib,"a.lib")的时候;此时就搜索a.lib的路径列表就包括这个路径. 若是要链接一个lib,直接把它加入到附加依赖项 和 把它所在的文件夹加入到附加库文件夹里面有什么差别? 加入到附加依赖项 :你的LIB文件被真正包括进来了. 把它所在的文件夹加入到附加库文件夹里面 :只包括文件夹不过告诉IDE,没有路径搜索库文件.另外这里搜索. 版权声明:本文博主原创文章.博客,未经同意不得转

npm生成的package.json文件中依赖项版本号前的波浪号(~)和插入符号(^)是啥意思?

package.json一般也就长这么模样: { "name": "", "description": "", "version": "4.17.1", "author": "", "contributors": [], "license": "MIT", "repository

VC 6.0中添加库文件和头文件 【转】

本文转载自:http://blog.sina.com.cn/s/blog_9d3971af0102wxjq.html 加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在“Project Setting>C/C++ >Category:(选Preprocessor)>Additional include directories”处添加附加头文件目

傅里叶变换库FFTW的安装配置(VS2010)

FFTW是用来计算一维或者多维的离散傅里叶变换,输入可以为实数序列也可以为复数序列的C语言的子函数库,FFTW是免费软件,是作为fft函数库的各种应用的上佳选择. 1. 从网站http://www.fftw.org/install/windows.html上下载最新的预编译文件:    32-bit version: fftw-3.2.2.pl1-dll32.zip (1.8MB)    64-bit version: fftw-3.2.2-dll64.zip (2.2MB) 2. 使用Lib.

windows中静态库lib和动态dll的区别及使用方法

1. 静态库lib和动态dll的区别 1.1 项目类型 VS在建Win32项目时,有以下选项: windows应用程序控制台应用程序DLL静态库最后两个类型:DLL和静态库,这两种项目类型是不可以单独运行的,必须在Windows应用程序调用他们执行,是提供的库函数而已. 1.2 两种lib的区别: (1)静态库(.lib) 函数和数据被编译进一个二进制文件(通常扩展名为.LIB).在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建