这个问题是关于在使用C ++超过一年后我无法解决或找到任何解决方案的问题。
我习惯在C语言中使用单独的文件作为标题和代码,但我在C ++上遇到了问题:每当我编辑一个头文件并尝试编译再次使用它的代码时,编译器就不会这样做。注意标题上的变化。
我要解决的问题是"编译"标题(.hpp)单独。有时我只是将它添加到g ++的源文件列表以及其余的代码中,但接下来发生的是我必须执行两次命令(第一次它给我错误,但不是第二次)。它还警告我,我曾经使用" pragma一次"主文件中的选项。
我知道这是非常错误的,所以我已经找到了正确的方法来做到这一点,但没有成功。我注意到g ++生成" .gch"文件,但我不知道他们的目的是什么,尽管它们可能是相关的。
我怀疑问题是由于" .hpp"中的代码引起的。我知道(我认为)这样做的好方法是仅在标题内定义原型并将方法体写入单独的文件中,但有时(特别是在使用模板时)会产生更多问题。
答案 0 :(得分:0)
.gch是预编译的头文件,如果您显式编译头文件,则会创建它 然后编译器将使用该文件而不是实际的头(编译器不关心修改时间戳)。
执行rm *.gch
并将所有标题永久保留在编译命令之外。
(并且不要将模板实现放在.cpp文件中。)