我总结的c ++项目由两个目录组成,当然还有main.cpp
:
Dataloader
包含 dataloader.h 和 dataloader.cpp Analysis
包含 analysis.h 和 analysis.cpp 在 dataloader.h 中我包含了 analysis.h ,如下所示:
#include<../Analysis/analysis.h>
我的教授告诉我,这不是很大!!!!!我们试图创建一个 makefile ,他很惊讶。为什么这是一个不好的做法?以及如何使包含更简单。我正在研究code::blocks
和gcc 4.8编译器。
N.B。我注意到代码::阻止了一些原谅如何包含错误。什么时候 我们尝试使用gcc命令编译它变坏了
答案 0 :(得分:2)
我同意你的教授。使用
#include<../Analysis/analysis.h>
使代码变得脆弱。如果使用不同的目录结构重新组织代码库,则包含此类#include
语句的文件将无法编译。
关于:
N.B。我注意到代码::阻止了一些原谅如何包含错误。当我们尝试使用gcc命令编译它时,它变坏了
将-I.
添加到编译器标志以解决该问题。
答案 1 :(得分:1)
我总是被教过,这是有道理的,你应该将你的包含在依赖于它们的文件中。
因此,在您的情况下,我假设您使用dataloader
导入数据,然后使用analysis
进行分析。那么在这种情况下,将这两者包含在主要内容中更有意义。
相比之下,我做了一个包含print_board()
功能的n tic tac toe游戏。此函数依赖于具有常量colors.h
的头文件来正确打印电路板。所以在这种情况下,我的print_board.h
文件包含colors.h
文件更有意义,因为它直接依赖于它,而没有别的。