【发布时间】:2020-01-14 08:22:38
【问题描述】:
在我们的源代码中,我们有一个数据模块,其中设置了某些标准值(例如包含编译日期的内部版本号)。这个模块应该总是被编译。我们如何在 C++ Builder 中强制执行此操作,而不总是编译所有模块或手动“触摸”模块以将其标记为已更改?
【问题讨论】:
标签: c++ compilation c++builder
在我们的源代码中,我们有一个数据模块,其中设置了某些标准值(例如包含编译日期的内部版本号)。这个模块应该总是被编译。我们如何在 C++ Builder 中强制执行此操作,而不总是编译所有模块或手动“触摸”模块以将其标记为已更改?
【问题讨论】:
标签: c++ compilation c++builder
一种方法是将文件名添加到项目选项 -> C++ 编译器 -> 高级 -> 传递给编译器的附加选项。你可以在那里写下文件名,例如System.cpp。但是,只有在项目中的某些 C++ 文件发生更改时才会重新编译该文件,而不是在您不做任何更改的情况下进行重新编译。
缺点是手动更改文件时,会在命令行中添加两次,并出现警告:[bcc32c Warning] ignoring duplicated input file 'System.cpp' [-Wborland]。要摆脱这种情况,您可以从构建中排除该文件(右键单击该文件)。
【讨论】:
【讨论】:
我找到了解决方案。使用 C++Builder 提供了一个小工具“Touch” 此工具可用于确保始终编译模块。必须在 Build events 下的项目选项中添加(我不确定该选项是这样调用的。只知道我翻译的德语描述 'Build Ereignisse')我要编译的文件始终称为 'DmFehlerF. cpp'在目录'edi'中。为了得到这个,我在 Post build events 中添加了命令 'Touch -c .\edi\DmFehlerF.cpp' Projectoptions
【讨论】: