C++ C++;生成器强制编译特殊文件

C++ C++;生成器强制编译特殊文件,c++,compilation,c++builder,C++,Compilation,C++builder,在我们的源代码中,我们有一个数据模块,其中设置了某些标准值(例如构建编号,包括编译日期)。应始终编译此模块。我们如何在C++ C++ Builder中强制这个,而不总是编译所有的模块或者手动“触摸”模块,所以它被标记为被改变了?< P>。您可以直接在那里写入文件名,例如System.cpp。但是,只有当项目中的某些C++文件发生更改时,才重新编译文件,而不是在没有更改的情况下重新编译。 缺点是,当手动更改文件时,它将被添加到命令行两次,并且有一个警告:[bcc32c warning]忽略重复的输

在我们的源代码中,我们有一个数据模块,其中设置了某些标准值(例如构建编号,包括编译日期)。应始终编译此模块。我们如何在C++ C++ Builder中强制这个,而不总是编译所有的模块或者手动“触摸”模块,所以它被标记为被改变了?

< P>。您可以直接在那里写入文件名,例如
System.cpp
。但是,只有当项目中的某些C++文件发生更改时,才重新编译文件,而不是在没有更改的情况下重新编译。 缺点是,当手动更改文件时,它将被添加到命令行两次,并且有一个警告:
[bcc32c warning]忽略重复的输入文件'System.cpp'[-Wborland]
。要消除此问题,您可以从生成中排除该文件(右键单击该文件)。

您可以使用该对话框指定预生成事件命令:


删除相应的对象(
.obj
)文件或源文件就足够了。

我找到了解决方案。在C++Builder中提供了一个小型工具“Touch”,该工具可用于确保始终编译模块。它必须添加到Build events下的项目选项中(我不确定该选项是否被这样调用。只知道我翻译的德语描述“Build Ereignisse”),我要编译的文件始终被称为目录“edi”中的“DmFehlerF.cpp”。为了得到这个结果,我在构建后事件中添加了commant'Touch-c.\edi\DmFehlerF.cpp'

感谢您的回复。模块现在总是重新编译。不太好的是,C++Builder似乎也将头文件标记为已更改。这将导致重新编译包含此项的所有模块。您有什么建议吗?@user7579346对头文件和cpp文件使用不同的文件名。您好,我发现它不起作用。首先,它看起来是否有效,但实际上没有。我尝试将它作为所有配置的值-所有平台形式,但它没有添加它。谢谢,但是如何在不更改文件的情况下触摸文件?Touch在dos下不存在。@PaulHoefakker是C++Builder命令行实用程序中的一个。我不确定在RAD Studio安装过程中是否将实用工具文件夹添加到系统路径。您好,Manlio,在我们的安装中,它不在那里。我们正在使用C++Builder 10.2你好,Manlio,我找到了exe。它仅在预制Makros中未显示。谢谢,我把它放在了后期构建事件中。意味着第一次它不起作用,但后来它起作用了。