目前的项目依赖于不少第三方库,每次要再一个新的环境编译/运行,都要花很长时间先编译/安装各类第三方库,并且会出现各类问题,所以决定将全部第三方库编译好以后,放入工程的子目录中,之后就不用重复编译了。ui
整理后的目录结构以下:.net
如此修改目录结构以后,VS工程的一些设置须要进行修改,分别说明一下:3d
在工程属性中 Configuration Properties > General > Output Directory 指定的是编译出来的lib/dll/exe存放的路径。orm
由于须要分平台,分Debug/Release版,因此用到了一些宏:blog
相应修改一下就行,使用$(Platform)$(Configuration)这两个宏,可使各个平台/版本的配置都同样,不须要分开配置。it
具体想知道有哪些可使用的宏,能够再任何一个edit窗口,点击“Macro>>”按钮,展开全部的宏查看。io
最后这一条比较重要,由于如今全部第三方库都不用安装了,因此在运行程序的时候如何找到这些dll是一个问题。编译
exe在运行的时候找dll的顺序以下,理论上把dll加到任何一个环节均可以:form
咱们以前作了这么多事情,就是为了在新的环境中不须要作任何配置就能运行VS的工程,因此任何手动拷文件/修改环境变量的方式都不是最好的。变量
参考了这篇文章 http://my.oschina.net/u/243648/blog/62847,由于咱们的dll分散在不少个文件夹中,最后采起的方法是将这些目录都加到环境变量PATH中,固然不是手动添加,而是加到VS的配置中。
在工程属性中 Configuration Properties > Debugging > Environment 能够添加在VS中运行程序须要添加的一些环境变量,仅对当前工程有效。咱们把全部第三方库的路径加进去就好了,注意必定要用相对路径,不然换一台机器仍是不能用。这里有个潜在的危险,若是你的系统里面已经装了这个第三方库,而且加到了上面6个环节中的任意一个,可能会引发一些错误。
另外若是出build的话,就须要另写一个脚本,将须要用到的第三方dll和编译出来的程序一块儿打包,这样就好了。