使用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 头文件 )

VS项目属性的一些配置项的总结

VS项目属性的一些配置项的总结

VS项目属性的一些配置项的总结(important)

如何配置 VS Code 以使用 cubeMX 构建和调试 STM32 项目 - Windows 10

VS项目属性的一些配置项的总结(important)