nod*_*nja 2 c++ compilation header-files
我正在查看 ncmpcpp 的源代码,我看到了这个。
#include <mpd/client.h>
Run Code Online (Sandbox Code Playgroud)
在该文件中是由 ncmpcpp 使用的函数。但这些只是标题。cpp 文件不是也必须存在于某处吗?我在同一目录中找不到它们。他们在哪里?
另外,当包含的内容被 < 和 > 包围时,我怎么知道去哪里看?
如果它是第三方库,则很可能不会包含源代码。也不需要。标头中声明的所有符号(打算使用)都应该导出到.lib可能与标头一起提供的文件中。
除非你有templates,它可以是内联的。
cpp如果您想自己编译代码,您只需要这些文件,或者更一般地说,是实现文件。你没有。您可以使用只有头文件和二进制文件的模块。
当然,想到开源项目的例子,一般都是把所有的文件都包进去,但是如果是商业产品,为什么要发布源代码呢?是什么阻止任何竞争对手只是复制它并以新名称转售?
没有标准规则告诉在哪里查找由<>或分隔的标头"",但普遍的共识是<>用于系统标头(如string或iostream)和""自己的标头(myclass.h)。它只是告诉编译器首先查看哪里。