首页 > 解决方案 > 大型项目的默认文件夹设置

问题描述

当我尝试学习 C++ 时,我已经开始了一个更大的项目,我尝试使用类以避免main.cpp文件混乱。这意味着我正在创建更多.cpp文件,这些文件与文件放在同一文件夹中main.cpp。这也导致了一个混乱的目录,所以我尝试通过在两个链接后面添加文件夹来管理我的文件:

我的问题如下:

例子:

代替:

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

采用:

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

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

我目前的结构:

当前结构

标签: c++directory

解决方案


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

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

如果标准不存在,在创建文件夹结构时是否应避免任何不良做法?

你应该:

  • 将您编译的文件放在不同的文件夹中(可能是 bin)。
  • 在不同文件夹中的不同逻辑模块中组织您的项目。
  • 将根文件夹用于非代码文件(makefile、gitignore 等)。
  • 仅使用小写名称以避免愚蠢的错误。

你不应该:

  • 使用绝对路径。

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

不,那真的很糟糕。

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

所以你会使用:

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

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

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

任何明智的 IDE 都会为您做到这一点。或者你可以在你的makefile上做任何适合你的事情。


推荐阅读