VS引用第三方代码资源的方法
1、作为普通级别的技术人员,添加过许多技术交流群(同事称之为黄图群),许多使用Windows平台的Visual Studio,交流群中如何引入第三方代码资源提问源源不断,因此提供本文作为建议
2、这问题很简单,但对于技能就我个人而言,不会的时候觉得这狠是高深莫测难如登天,掌握之后也就觉得平平无奇了,下面将提供几种简单的方法供参考
1.1)拷贝法:将需要引用的东西拷贝到工程目录。比如我需要引用一个AVTree的第三方实现:
第一步、将文件拷贝到VS的工程目录下
第二步、在VS的解决方案资源管理器中对着需要引用AVTree的项目右键选择 "添加"->"现有项"后选中拷贝到项目目录中的AVTree文件后点击"添加"就能完成引用
对于其它类型的文件如lib等方法类同,这种方法最为简单,在移植性上只要引用的相对结构保持一致就行;但是对于多个工程复用不好维护,需要在更新引用文件后到处去拷贝。
2.1)将文件拷贝到VS安装目录下也是可以的,但是重新安装VS需要重新拷贝并且会污染环境且不具移植性。
3.1)将需要使用的代码实现文件、lib拷贝到Windows的系统环境变量目录中,这种方法方便在多项目中共享但不具移植性并且会污染系统环境。
3)项目设置法:将代码实现文件放在一个目录中,通过设置项目属性来完成引用
1)第一步、对着项目右键选择"属性"->"VC++目录"选择"包含目录"与"库目录"两个选项进行写入
第二步、选择"属性"->"连接器"->"输入"中选择"附加依赖项"进行lib引用的指定,如你需要引用ref_lib1.lib与ref_lib2.lib
这种方法最大的优点在于对第三方引用资源的管理非常方便、更新修改都不需要单独为引用的项目单独做什么,麻烦的地方是要为每个引用的项目执行一次上面的操作。
4)软链接法:将需要引用的代码资源放在一个指定的目录,然后将这个目录写进环境变量,所有第三方修改将在目录中进行并且不需要对引用项目进行更新,但是如果环境或者链接破坏还是需要重建链接的。
第一步、创建软连接(因为是代码类的东西,所以自己是把这个目录链接到了VS的目录里面的,这个看个人喜好没有太大影响)
mklink /J "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\OpenGLLink" "F:\learnopengl\include&lib\include"
mklink /J "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OpenGLLink" "F:\learnopengl\include&lib\lib32"
第二步、项目引用中使用include引用即可(这里需要注意 #include<> 与 #include"" 的作用)
这里使用#include<>是因为链接到环境变量的目录中了,所以使用的是系统搜索机制
这里使用#include""是因为这个文件引用的头文件所在目录实际上并不在环境变量中,所以需要使用当前目录搜索机制
这种方法方便第三方引用的管理,但是不具备移植性,非常适合自己写东西用
(核心在于理解VS是怎么搜索文件的,怎么与环境变量勾搭上就没啥问题了)