将标题放在项目的"include"子目录中是否有任何优势?

Ste*_*nov 2 c++ project-structure header-files

我注意到,在流行的C++库的源煤渣有独立srcinclude文件夹,包含*.cpp*.h文件水涨船高.这样做有没有优势,而不是简单地将每个.cpp放在与匹配的.h相同的目录中?

Sme*_*eey 8

通过这种方式构建代码通常更容易,尤其是当您要将其作为带有预编译库的API导出时.(公共)标题然后成为您的API,将它们保存在与源不同的位置是有意义的,因为这是必须与库一起分发的代码的一部分.

  • 我倾向于将库的公共API头文件放在'include'目录中,并将其他标头放在'src'目录中的库内部,与.cc文件一起放置.这样可以很容易地为用户打包二进制文件+ include dir,并保持实现细节头不受影响. (3认同)