【问题标题】:Best practice: src/include or include folder next to src folder [closed]最佳实践:src/include 或包含 src 文件夹旁边的文件夹 [关闭]
【发布时间】:2014-03-19 20:06:39
【问题描述】:

项目文件夹结构的最佳或最常用做法是什么:

project |-- src |-- include

project |--src
              |--include

即源文件夹中有包含文件夹还是两者都相邻?

编辑:

这个问题类似:Separate "include" and "src" folders for application-level code?,但答案并不令人满意。

【问题讨论】:

  • 我相信第二种更常见,其中include 仅包含外部可见的头文件(例如,与库一起分发的头文件)。其他头文件与源代码的其余部分一起进入src
  • 我总是将包含文件与它们相关的源放在同一目录中,并使用文件夹来隔离应用程序的不同位(通常是单独的 DLL)。但是当然,将外部可见的头文件放在同一级别的包含目录中很有意义(我大多不需要这样做)。
  • 我确实喜欢 include 与 src 处于同一级别,因为它明确了什么是公共的,什么是私有的实现。脚本安装也更容易,因为它是一个简单的文件夹副本。
  • @Marc:我看到了这个问题,但我并没有真正从答案中学到什么......可能是我的坏事,但到目前为止,这个新线程对我的帮助更多......我可以把问题中的“另见”之类的东西

标签: c++ c directory project


【解决方案1】:

如果我要创建一个库,我会做这样的目录结构:

project/
       project_name/
       src/

project_name 包含包含文件的位置。
但是对于应用程序级项目,这将是我的选择:

project/
    src/

src/ 然后将包含所有文件,无论是 .h 还是 .c。
简而言之,除非您正在编写库,否则不要将文件夹用于头文件,因为库需要更有条理,也便于库的安装。

【讨论】:

    【解决方案2】:

    根据我的经验,在src 目录旁边放置include 目录在开源库中更为常见。

    请注意,有些库甚至使用另一个细分:他们将库划分为模块(例如ModAModB 等),然后为每个模块分别创建一个include 和一个src 目录,即ModA/includeModA/srcModB/includeModB/src。参见例如the PCL library

    【讨论】:

      【解决方案3】:

      我更喜欢将两个文件夹放在同一级别。 你必须选择你自己的方式。

      例如,我更喜欢将源文件与 makefile 的包含分开,以便获得对我的项目的更多可见性。

      Project |--src/
              |--include/
              |--others/
              |--obj/
              |--Makefile
      

      【讨论】:

        猜你喜欢
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        相关资源
        最近更新 更多