Ada GNAT重新编译库文件/如何强制重新编译所有文件

Ada GNAT重新编译库文件/如何强制重新编译所有文件,ada,gnat,Ada,Gnat,我有一个错误,我得到文件X(在标准库中)需要重新编译,因为另一个文件已更改。它已更改,因为我不小心更改了它,但已更正更改(通过md5sum检查确认)。但是时间戳已经更改,因此现在其他项将无法编译。除了重新安装(这当然不是必需的,但也是可能的),解决方案是什么 我尝试在构建时将-f选项添加到gprbuild以强制重新编译,得到了相同的结果 确切错误: error: "a-direct.adb" must be recompiled ("a-calfor.ads&quo

我有一个错误,我得到文件X(在标准库中)需要重新编译,因为另一个文件已更改。它已更改,因为我不小心更改了它,但已更正更改(通过md5sum检查确认)。但是时间戳已经更改,因此现在其他项将无法编译。除了重新安装(这当然不是必需的,但也是可能的),解决方案是什么

我尝试在构建时将
-f
选项添加到
gprbuild
以强制重新编译,得到了相同的结果

确切错误:

error: "a-direct.adb" must be recompiled ("a-calfor.ads" has been modified)
error: "a-calfor.adb" must be recompiled ("a-calfor.ads" has been modified)
error: "g-calend.adb" must be recompiled ("a-calfor.ads" has been modified)
...

在用户项目上调用时,gprbuild知道如何编译该项目(及其依赖项),而不是运行时

我认为,AdaCore的客户提供了重新编译运行时的支持,GCC源代码中有GPRs和a

gnatmake有一个开关
-a
,它强制将运行时源重新编译到对象目录中。我认为gprbuild不支持它,而且在任何情况下,您都需要为所有项目调用它


如果我是你,我会继续重新安装。

好的,这可能不是警告的目的,但我只需要开始。因此,我添加了(根据
gnatbind
的帮助)——在
gprbuild
中为活页夹添加
-t
选项

gprbuild -<options> -P <project_file>.gpr -bargs -t
gprbuild--P.gpr-bargs-t
它将错误更改为警告并生成了我的可执行文件


显然不是解决错误的“正确”方法,但这一部分并不重要,我需要继续。

重新编译运行时文件的切换是
-gnatg
,gnatmake for CE应该有it@egilhh是的,但是这并不能使GnATBION/GATATLink在构建过程中考虑新对象。