【发布时间】:2015-10-24 13:53:29
【问题描述】:
我刚刚设法解决了我自己的问题,解释了here。我不明白的是它背后的原因。基本上在将一个工作程序拆分为一个 makefile 之后,所有包含都在正确的位置,一个特定的对象构造调用停止工作。
解决方案最终是将 #include "filename.h" 在 main.cpp 文件中的 10 个左右 #include 列表中上移。
这是否意味着存在某种约束?我不知道有一个,并且自从进行此更改以来,现在已排在底部的另一个标题仍然可以正常工作。
编辑:应一些用户的要求,我添加了最少的代码,这些代码会为我产生错误。虽然它仍然只有 300 多行...代码顶部的 cmets 解释了如何使错误发生,但需要将代码拆分为单独的文件并使用 makefile。
【问题讨论】:
-
预处理器将所有代码粘贴到包含文件
#included 中(除非被警卫阻止)。所以几乎可以肯定这是一个 PEBKAC 错误。 -
是的,我也是这么想的。我只是不明白为什么将#include 向上移动几个位置会改变任何事情。
-
仍然没有足够的信息来查看问题所在。
-
您的某个标头可能使用了该标头中的某些内容而不包含它,因此您自己事先包含它可以修复它。
-
其他文件是否包含它们所依赖的头文件?
标签: c++ class object makefile header-files