为什么必须链接库和设置包含目录

时间:2011-07-01 04:41:34

标签: c++ include static-libraries

嘿所以我有点困惑为什么,在msVS ++ 2010中,当所有头文件和cpp文件都在静态库静态库项目中时,你必须包含目录/ em>在我的情况下。

我用cmake创建了静态库项目,并且我被告知设置它的源文件是相同的我现在被告知要创建包含目录...好像我有2个相同的cpp和头文件..除了在我的解决方案中静态包含的内容...为什么?

2 个答案:

答案 0 :(得分:3)

因为VS ++在抽象底层实现时并没有完全隐藏它。

包含目录和库的目标是流程的不同阶段,传统上由不同的程序处理。由预处理器包含目录,链接器包含库。这些程序现在被称为(或部分?)VC ++,但它的界面仍显示底层结构。

有些系统允许通过使用编译指示在源代码中标记所需的库(因此在标题中)。这些有几个缺点:

  • 非标准

  • 你不能轻易地用另一个替换库(比如debug / instrumented / release,single thread / multi thread,...)

答案 1 :(得分:2)

标题文件告诉您关于您正在调用的函数。

静态库包含您正在调用的函数代码,但不包含 如何调用它们的信息。