c++ - 大型项目的默认文件夹设置
问题描述
当我尝试学习 C++ 时,我已经开始了一个更大的项目,我尝试使用类以避免main.cpp
文件混乱。这意味着我正在创建更多.cpp
文件,这些文件与文件放在同一文件夹中main.cpp
。这也导致了一个混乱的目录,所以我尝试通过在两个链接后面添加文件夹来管理我的文件:
- 链接1: https ://hiltmon.com/blog/2013/07/03/a-simple-c-plus-plus-project-structure/
- 链接2: https ://mariuszbartosik.com/directory-structure-for-ac-project/
我的问题如下:
- 是否存在用于工作场所的创建 C++ 项目的标准,还是每个项目都是主观创建的?
- 如果标准不存在,在创建文件夹结构时是否应避免任何不良做法?
- 我可以创建一个文件夹结构,在其中将所有头
(.h)
文件放在一个目录中,将所有源文件放在另一个目录中,(.cpp)
例如在我的包含中使用 a ,然后以某种方式 意味着我不需要每次包含头文件时都写入头目录的路径,而不是在包含之前写 HEADER?C:\headers\header.h
C:\source\main.cpp
#define HEADER "/path to header"
#include HEADER "aheader.h"
例子:
代替:
#include "c:\headers\header.h"
#include "c:\headers\anotherheader.h"
采用:
#define HEADER "c:\headers\"
#include HEADER "header.h"
#include HEADER "anotherheader.h"
我问这个是因为我想在学习用 C++ 编码时避免所有不好的做法,所以我以后不会犯错误。由于我没有工作经验,我不知道我在网上找到的指南是否在实践中是好的。
我目前的结构:
解决方案
是否存在用于工作场所的创建 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上做任何适合你的事情。
推荐阅读
- woocommerce - WooCommerce 对客户隐藏了一些国家,但对管理员却没有
- c++ - 以功能方式组合谓词并允许短路工作
- javascript - Angular ngOnInit 的问题
- php - 在 PHP 中加入两个关联数组
- oracle - 将所有数据从一个表移动到另一个表的 PL/SQL 过程
- terraform - 如何修复 provider.vault:找不到保险库令牌?
- python - 检查 discord.py 中的参数数量
- java - Jave HttpClient - JSON 内容未解析 -
- javascript - svg 脚本仅在刷新后触发
- c# - 将服务安装程序添加到 Worker 服务