使用 Dev-C++5.11 在 C++ 程序中编译的错误文件
Posted
技术标签:
【中文标题】使用 Dev-C++5.11 在 C++ 程序中编译的错误文件【英文标题】:Wrong files compiled in a C++ program using Dev-C++5.11 【发布时间】:2017-01-29 14:46:12 【问题描述】:我想问一些听起来很愚蠢但我不知道如何克服它的问题。
我编写了一个 C++ 程序,其中包含一些头文件和 2 个 cpp 文件,其中一个包括 main。在头文件中,我创建了一些类的定义,这些类具有一些内联函数和我在类中声明的一些函数并在其中一个 cpp 文件中定义(不是带有 main 的文件)。 该程序编译并运行良好,但我想在类的一些内联函数中更改一些细节。我做了这些更改,程序编译并运行,但它使用的是以前版本的头文件,而不是新版本。
我曾尝试使用新文件创建一个新项目,但即便如此,该程序实际上仍会使用其旧版本。
我在 Windows 10 中使用 Dec-C++5.11。
解决了。看起来我需要更改文件名。非常感谢!!
【问题讨论】:
你在构建之间做了“干净”吗?至于新项目,我猜想你仍然包含旧文件。更改标题名称,然后重试。这可能有助于确定问题。或将 -H 添加到编译行,这将显示(在许多编译器上)被拉入的头文件。 改名成功了!非常感谢你!! :D 【参考方案1】:某些构建系统只会执行“增量”构建,因此如果您更改源文件,则该源文件会被重新编译,但除非您重新构建整个项目,否则您的原始标头内容可能仍会被使用。如果您使用的是预编译的头文件,情况更是如此,并且它还可能影响内联函数,因为它们的内容已经“内联”到未触发重建的源文件中。
在许多情况下,更改标头的文件名可以绕过这个“缓存”,但正确的(并且对用户更友好)的方法是确保您指示 IDE 从头开始重建整个项目。在 Dev-C++ 中,该选项称为“Rebuild All”。每当您更改头文件时,我通常会推荐此选项。
(如果您使用 GNU Makefiles,您将在下一个 make all
之前执行 make clean
)。
【讨论】:
以上是关于使用 Dev-C++5.11 在 C++ 程序中编译的错误文件的主要内容,如果未能解决你的问题,请参考以下文章
在DEV-C ++ 5.11中更改程序的图标(Win32 GUI模式)