C++ 什么';s c+中头文件和库文件之间的关系+;?

C++ 什么';s c+中头文件和库文件之间的关系+;?,c++,header,C++,Header,为什么我们需要在编译中同时添加include和lib 为什么libs不将所有内容都封装在其中?头文件(通常)只包含类和函数的声明。实际实现是从CPP文件构建的。然后,您可以仅使用可用的标题声明来链接这些实现。我猜这就是您处理在上一节中提出的问题的方式 不幸的是,我认为最好的解决方法是在把所有东西都发布到这个站点之前,了解更多关于C++的知识,或者了解更多关于谷歌的信息。库提供实现 库的标题将告诉编译器库提供的函数的名称和签名、库提供的变量名称以及库提供的类的布局 库本身是在运行时执行的编译代码。

为什么我们需要在编译中同时添加include和lib


为什么libs不将所有内容都封装在其中?

头文件(通常)只包含类和函数的声明。实际实现是从CPP文件构建的。然后,您可以仅使用可用的标题声明来链接这些实现。

我猜这就是您处理在上一节中提出的问题的方式


不幸的是,我认为最好的解决方法是在把所有东西都发布到这个站点之前,了解更多关于C++的知识,或者了解更多关于谷歌的信息。库提供实现

库的标题将告诉编译器库提供的函数的名称和签名、库提供的变量名称以及库提供的类的布局


库本身是在运行时执行的编译代码。在编译过程中使用头可以让编译器生成编译后的代码,这些代码知道如何调用现有库代码并与之通信。

您的问题不清楚,但您似乎感到困惑。头文件没有添加到编译中——它们位于源文件和(可能)生成文件中。张贴你所拥有的(并且偶尔接受一个答案)你可能也想读一本关于C++的书。有趣的是,这个问题已经足够有趣了,已经在C++标准委员会中讨论过了。并且在C++11之后仍在进行更新,所以它只是用于编译时,在运行时被忽略?所有声明基本上都是编译时的。如果您编写自己的函数原型,则编译代码中没有反映原型的内容。现在,函数体最好存在于某个地方,否则你的链接器会抱怨,但编译的是函数体,而不是原型。。。昨天,一个与外部相关的问题也发生了同样的事情。是时候停止回答该用户的问题了!