配置VS的DLL文件引用目录(两种方案,无需每次生成dll后手动将其复制到exe目录下)
引言
由于项目需要,需在一个项目中引用另一项目封装的dll库,但是还处于开发测试阶段,dll库会出现频繁更新的问题,若每次更新dll后都将lib、dll、.h头文件都按照项目路径依次复制一遍,实在过于繁琐,因此研究了如下两个方案可以实现一键式拷贝dll文件。
1、前置准备
准备做dll库的引用,首先准备3种文件,即.h头文件、dll动态库文件和lib库文件,出于项目文件分类的考虑,我将他们分别放在了include文件夹和Libs文件夹下,这能让我们的项目更简洁;
2、项目配置
我们做一些简单的配置,这个网上有一大堆教程教,内容大差不差的。
此处配置了头文件所在的路径,完成此处配置后我们在.c或者.cpp文件下只需要#include<头文件名.h>,即可搜索到对应路径下的头文件,避免了打一大串路径让代码显得臃肿。
而后,在链接器->常规->附加库目录,下添加我们的.lib文件所处的目录,并在链接器->输入->附加依赖项,中添加lib文件的名字。此处的添加用于帮助项目查找到lib文件;
3、核心方案1(将dll文件自动复制到exe文件目录下)
步骤3和步骤4选一个进行配置即可。
添加项目生成前指令,通过自动执行该命令,从而将步骤1中的Libs目录下的所有文件复制到exe文件所处目录(实际上此处需要复制的只有dll文件)
参考命令:xcopy /e /r /y $(ProjectDir)Libs $(OutDir)
方案优点:无需手动拷贝,只要把需要的库文件丢到Libs下,项目就能自行拷贝;
方案缺点:若后期项目庞大,dll文件过多,会导致每次拷贝时间过长。
关于如何配置适合你的项目的指令,如下图所示在编辑指令的时候VS会自动帮我们计算出对应的路径,填写正确的路径即可。
指令拼接完成后,可以使用工具->命令行->开发者命令提示,进行测试,使用该工具测试的时候需要使用绝对路径做测试,若直接用、"$(ProjectDir)"进行缩写,可能出现命令行无法理解该路径的情况。
完成如上配置后,在项目每次生成的时候,都会执行对应的命令进行文件拷贝,从而省去了手动拷贝库文件到exe的麻烦。
4、核心方案2(修改调试环境)
步骤3和步骤4选一个进行配置即可。
在调试->环境,中配置项目调试时的环境。
参考配置:path=%path%;…/dllTest/Libs
其中%path为原有系统路径,…/dllTest/Libs为我们项目的dll库所在路径。
方案优点:无需像步骤3那样进行拷贝,更节约时间;
方案缺点:进行exe发布的时候,还是需要将Libs目录中库拷贝出来的,不然客户不能用,此处只是方便了我们调试。