在使用VS编译程序的Debug版本和Release版本时经常会面临添加库文件的问题,并且两种模式下添加的库文件名字一般还不一样,比如Debug的一般为****.d.lib,而release的一般是不带d的,比如下面这张PCL点云库的lib文件夹就很明显。我们在VS中的链接器输入库的名字时如果有很多,那么一个一个的复制粘贴岂不是麻烦死了?比如PCL库,一般要添加这么长-----------------------------------------------------------------------的lib文件!
所以有没有一种办法直接获取文件夹下两种模式对应的lib文件,只需要ctrl+c,ctrl+v就把链接器的库文件配好呢?答案是当然有,不然我在写什么?
(1)Debug版本
首先是简单的Debug版本的lib文件,只需要找到文件夹下所有以d.lib结尾的文件名就可以了,所以我们只需要使用命令行先进入存放lib的文件夹
e:
cd E:\PCL\PCL 1.11.1\3rdParty\Boost\lib
然后输入
dir /b *d.lib *>debuglib.txt
就可以在E:\PCL\PCL 1.11.1\3rdParty\Boost\lib文件夹下生成一个txt文件,然后就ctrl+c ctrl+v就可以了。
(2)Release版本
release版本有亿点复杂,需要对dos命令有一定了解才能做到,首先分析一下我们的需求,无非就是找到以.lib结尾,并且.之前的第一个字母不是d的lib文件吗?(除非这个库极特殊,又以d.lib结尾,又是Release的库文件,这种情况至少我还没见过)
那既然需求有了就试着用命令行去实现,经过研究我得到如下答案:
dir /b *.lib | findstr /R "^.*[^d]\.lib$" > releaselib.txt
.*是通配符,[^d]是不为d,\.lib是以.lib结尾,连起来意思就是不管前边是啥,取所有的不以d结尾的.lib文件存放到releaselib.txt中,完活!