cpp项目的附加依赖项文件,都放在什么地方?如何引入?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文说一个cpp
项目的依赖项位置的问题,苏南大叔对cpp
项目没有太多的研究,多数原因就是因为这个依赖项没有搞清楚。不知道该放在什么地方,如何加载到这些附加依赖项。本文就谈谈苏南大叔有关cpp
项目的依赖项位置方面的经验总结。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验文章。本文测试环境:win10
,vs2019
。本文虽然很基础简单,但是这个也是苏南大叔反复实验了好几天得出的结论。如有不妥,欢迎留言。
附加包含目录
项目属性页=>C/C++
=>常规=>附加包含目录。
注意:这里定义了smc
这个自定义的目录,以及vcpkg
的自定义include
目录(里面放了.h
文件,没有.lib
文件)。
附加库目录
项目属性页=>链接器=>常规=>附加库目录。
注意:这里只定义了smc
这个自定义目录(里面放了codec.h
和codec.lib
文件)。
附加依赖项
项目属性页=>链接器=>输入=>附加依赖项。
注意:这里定义了一系列.lib
的引用。当然,除了codec.lib
外,其它的.lib
都没有看到在哪里。
cpp项目引入类库
现在先说文件引入,下面的是个小的例子:
#include <string>
#include <thread>
#include <magic_enum.hpp>
#include <nng/nng.h>
#include "codec.h"
#include "util.h"
#include "framework.h"
表格总结
分类 | 例子 | 放在哪里 |
---|---|---|
系统库 | <string> 、<thread> | 系统自己处理,无视 |
第三方库 | <magic_enum.hpp> 、<nng/nng.h> | 项目根目录/附加包含目录(vcpkg目录) |
第三方库 | nng.lib (这个属于隐式调用的) | 附加库目录(自定义的smc或者vcpkg系统目录) |
自定义库 | code.h 、codec.lib | 项目根目录/附加包含目录(附加库目录) |
项目内文件引用 | util.h 、framework.h | 项目根目录 |
这个解决方案里面,
- 有个自定义的目录
smc/
,放了自定义的库codec.h
和codec.lib
。 - 知名第三方库
nng
/spdlog
/lame
/magic_enum
等一系列.h
文件,通过vcpkg
放在了installed\installed\x86-windows-static\include\
目录下面。 - 知名第三方库
nng
/spdlog
/lame
/magic_enum
等一系列.lib
文件,通过vcpkg
放在了installed\installed\x86-windows-static\lib\
目录下面。 - 上面的这些第三方的
.h
或者.lib
目录,也可以放在根目录下面或者自定义的附加库(包含)目录smc/
下面。但是,如果放在这个下面的话,可能就需要定义“附加依赖项”了。
nng.lib
这段内容可能有偏颇,大家就不用看了。
作为范例的这个解决方案里面,最特殊的就是nng.lib
了,可能和它的使用方式有关。
项目 | 解压include目录 | 对应lib文件 |
---|---|---|
spdlog、magic_enum | 需要 | 不需要 |
nng | 需要 | 需要win32动态(.lib+.dll),需要配置附加库设置识别nng.lib |
nng(vcpkg安装) | 隐式解压 | 隐式加载,x86-windows-static |
相关文章
- https://newsn.net/say/cpp-spdlog.html
- https://newsn.net/say/cpp-magic_enum.html
- https://newsn.net/say/cpp-nng.html
- https://newsn.net/say/nng-lib.html
结语
cpp
项目的.exe
相比较c#
的exe
更好更快更有优势,最明显的是:不用安装.net framework
,解决了被笨重的framework
框架所支配的问题。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。