请允许我通过让您知道我没有正式的CS教育并且自学C ++来为这个问题做准备。
我想了解在项目中包含第三方库的不同方式是什么。
如果在github上有一个有趣的库,如何确定项目的包含方式?
我已经在windows上下文中阅读过关于动态和静态链接的概念,但我仍然对它们不太清楚。
答案 0 :(得分:2)
库包含函数的实现,无论是静态还是动态。库包含m个函数实现,其子集n <1。 m暴露给用户。在C ++中,对于这些n个函数,库通常会提供一个包含的头文件,包含所谓的函数原型列表。根据您包含的标题以及项目中使用的函数,链接器会记住此类外部函数的原型,并要求您将相应的库与可执行文件链接以满足未解析的原型符号。
静态库的函数实现在编译时被焊接到您的可执行文件中。动态库的功能实现完全保留在它们的位置,只有一个焊接到您的可执行文件中的存根,它将在调用它时将控制转移到动态库。
答案 1 :(得分:0)
简而言之,您只需要执行以下步骤来包含/引用C ++库:
将heade文件(*.h
或*.hpp
)目录添加到项目的包含路径中。
#include
源代码文件中的xxx.h
,用于调用函数/方法/接口。添加libaray:
*.lib
或Linux上的*.a
),将lib添加到项目的库路径中。*.dll
(或*.so
)与项目输出的同一目录(如*.exe
或您的lib),以便运行或发布/部署。