大型项目的默认文件夹设置

时间:2019-06-15 12:01:15

标签: c++ directory

在尝试学习C ++时,我已经开始进行一个较大的项目,在该项目中,我尝试使用类以避免出现混乱的main.cpp文件。这意味着我正在创建更多.cpp文件,这些文件与main.cpp文件位于同一文件夹中。这也导致目录混乱,因此我尝试通过以下两个链接添加文件夹来管理文件:

我的问题如下:

  • 是否存在用于创建C ++项目的标准? 工作场所还​​是每个项目都是主观创建的?
  • 如果不存在标准,则应采取任何不良做法 创建文件夹结构时避免使用?
  • 我可以创建一个文件夹结构,在其中放置所有标题(.h)
    文件放在一个目录中,所有源文件(.cpp)在另一个目录中 目录,例如C:\headers\header.hC:\source\main.cpp到 在我的包含中使用#define HEADER "/path to header",然后 以某种方式#include HEADER "aheader.h",这意味着我不会 每次包含标头时都需要将路径写入 标头目录,而是在包含之前写HEADER?

示例:

代替:

#include "c:\headers\header.h"
#include "c:\headers\anotherheader.h"

使用:

#define HEADER "c:\headers\"
#include HEADER "header.h"
#include HEADER "anotherheader.h"

我之所以这样问,是因为我想避免在学习C ++代码时的所有不好的做法,所以以后我不会犯错。由于我没有工作经验,所以我不知道我在网上找到的指南在实践中是否很好。

我当前的结构:

Current structure

1 个答案:

答案 0 :(得分:1)

  

是否存在用于创建C ++项目的标准?   工作场所还​​是每个项目都是主观创建的?

否,您可以在不同项目中找到不同的结构。

  

如果不存在标准,则应采取任何不良做法   创建文件夹结构时避免使用?

您应该:

  • 将编译后的文件放在另一个文件夹中(也许是bin)。
  • 在不同文件夹中的不同逻辑模块中组织项目。
  • 将根文件夹用于非代码文件(makefile,gitignore等)。
  • 仅使用小写字母名称,以避免出现愚蠢的错误。

您不应:

  • 使用绝对路径。
  

我可以创建一个文件夹结构,在其中放置所有标头(.h)   一个目录中的文件以及另一个目录中的所有源文件(.cpp)(例如C:\ headers \ header.h和C:\ source \ main.cpp)在我的目录中都使用#define HEADER“ / header的路径”然后以某种方式#include HEADER“ aheader.h”,这意味着当包含标头时我不需要每次都写标头目录的路径,而在包含之前写HEADER吗?

不,那真的很糟糕。

我不喜欢为源/头文件使用不同的文件夹,但是如果您愿意的话。您可以使用包含路径(-l标志)来解决。

因此您将使用:

#include <header.h>
#include <anotherheader.h>

之所以可行,是因为您在编译时就包含了该文件夹:

g++ -l "../headers" enemy.cpp

任何明智的IDE都会为您做到这一点。或者,您也可以在适合自己的makefile上执行此操作。