我想问一些可能听起来很愚蠢的事情,但我不知道如何克服它。
我写了一个带有一些头文件和2个cpp文件的C ++程序,其中一个包含main。在头文件中有一些我创建的类的定义,它们有一些内联函数和我在类中声明的一些函数并在其中一个cpp文件中定义(不是带有main的文件)。 程序编译并运行正常,但我想在类的一些内联函数中更改一些细节。我做了那些更改,程序编译并运行但是它使用的是先前版本的头文件,而不是新版本。
我尝试使用新文件创建一个新项目,但即使这样,程序也会实际使用旧版本。
我在Windows 10中使用Dec-C ++ 5.11。
解决。看起来我需要更改文件名。非常感谢!!
答案 0 :(得分:0)
某些构建系统只会执行“增量”构建,因此如果您更改源文件,则会重新编译该源文件,但除非您重建整个项目,否则仍可能会使用原始标题内容。如果您使用预编译的标头,情况更是如此,它也可能影响内联函数,因为它们的内容已经“内联”到未触发重建的源文件中。
在许多情况下,更改标头的文件名将解决此“缓存”问题,但正确(更加用户友好)的方法是确保您指示IDE从头开始重建整个项目。在Dev-C ++中,该选项称为“全部重建”。每当你改变一个头文件时,我都会推荐这个选项。
(如果您使用的是GNU Makefile,则可以在下一个make clean
之前执行make all
。