使用VS开始一个新项目配置外部库的新手总结
Posted rswss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用VS开始一个新项目配置外部库的新手总结相关的知识,希望对你有一定的参考价值。
在使用VS做一个项目的时候,往往会需要使用各种各样的库,一般一个标准的外部库目录大体结构为:
VS在配置这些库的时候有多种可行方法,但是不同的方法对于项目后续的管理和移植有不同的影响,我使用过以下三种方法进行配置。
第一种方式:
最不推荐的一种是直接用相对路径或者绝对路径去配置需要的库。这样做极不利于项目的整体维护和移植。
第二种方式:
每次新建vs工程是,习惯性的把include、lib、bin目录也创建出来,它们跟.sln在同一目录下。那么在使用到外部库的时候,就可以把外部库中需要的东西分别复制到对应文件夾里,这样做虽然增大了项目的体积,但是便于项目的整体移植。配置时,只需用定义好的宏,比如配置include:$(SolutionDir)就表示当前解决方案的路径,也就是.sln所在路径。
同样配置lib:
然后,‘输入’里边直接放需要的lib文件即可:
第三种方式:
在电脑系统环境变量里,把待使用的外部库新建一个变量,变量名赋值为该库的主目录:
接下来的配置就类似于第二种方式中,使用宏定义。
这种方式配置不需要复制各种库文件到项目中,使项目相对比较轻盈,但是在移植方面也有缺点,比如移植的目标运行环境必须有该库的环境变量,以及可兼容版本的库。
找不到.dll的问题:
另外,对于运行过程中报出的找不到.dll的问题,有两种方法解决:
1、去外部库目录下找到该文件,并复制到本项目生成的exe所在目录下。
2、在系统环境变量path中将该dll所在目录添加进去。
包含目录和附加包含目录:
新手可能分不清这两个目录的区别,因为不管在哪个里边配置路径都有效,所以就不去管到底有什么区别,只要管用就行。
1、 包含目录和附加包含目录(库目录和附加库目录)的区别:
包含目录:修改了系统的include宏的值,是全局的;
附加包含目录:用于当前项目,对其他项目没有影响。
(库目录和附加库目录的区别同上)
2、 可知包含目录和附加包含目录(库目录和附加库目录)的区别主要在于全局还是当前,那么当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的。
3、 要使用一个库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
*以上为结合网上资料和本人经验的一些整理,如有不妥,欢迎讨论
以上是关于使用VS开始一个新项目配置外部库的新手总结的主要内容,如果未能解决你的问题,请参考以下文章
Android OpenCVVisual Studio 创建支持 OpenCV 库的 CMake 工程 ② ( VS 中创建 CMake 工程 | CMake 工程中配置 OpenCV 头文件 )