【发布时间】:2013-02-27 19:10:54
【问题描述】:
我的文件夹结构是
libA
x.h
y.h
algorithm/
a.h
现在在a.h 我有#include "libA/x.h" 不工作。它正在搜索algorithm/libA/x.h。那么我应该使用 #include "../x.h" 吗?第二种选择是一个糟糕的设计吗?目前 libA 只是标题。但后者我可能会选择将其编译为库
我正在使用 cmake 那么我可以或应该在我的包含路径中添加 libA 吗?
总之
我的算法目录中的一些文件需要包含其父文件夹中的定义。我不能将所有函数都模板化,因为类型很明显,而且会过度。 那么我应该如何设计我的项目呢?
【问题讨论】:
-
“那么我应该使用
#include "../x.h” - 你试过了吗? -
您的编译器(或更准确地说是预处理器)对路径有何看法?
-
我正在使用 gcc,但它也应该适用于 msvc。但我从未见过这些编译器在
#include中拒绝../ -
@DiproSen 我的答案已被删除,没有发表评论。我希望它在那里时有用。作为对您的评论的回应,我会检查算法是否真的依赖于 x 和 y,还是依赖于这些类所呈现的特征?
-
我可以将算法中的函数模板化。但在某些情况下,类型很明显,将这些函数模板化将是过度的。所以我需要包括在内。但我还需要对算法相关文件进行分组