我正在使用 2 个虚拟机 (VMWare);一台 VM 具有 GNATPro Ada 编译器 7.3.2,并且 Ada.Real_Time.Clock 按预期返回自纪元开始以来的秒数。另一个 VM 具有 GNATPro 19.0,Ada.Real_Time.Clock 返回自 VM 启动以来的秒数。
我们在两个虚拟机上都使用 Ada 95。
我已经检查过两个虚拟机上的时间设置是否相同。
为了检查它是否是编译器差异,我在 Gnat Pro 19.0 上编译了一个小测试程序,并在使用旧编译器的虚拟机上运行它。我得到的结果与我在使用较新版本编译器的 VM 上所做的结果相同。然后,我使用旧编译器编译测试程序,并在使用新编译器的 VM 上运行它,并获得与使用旧编译器在 VM 上相同的结果。
我的问题是有人知道如何让 Ada.Real_Time.Clock 返回 GNATPro 19.0 纪元开始的秒数
下面是测试程序。
with Test_Io;
with Ada.Real_Time;
procedure Time_Test is
Current_Real_Time : Ada.Real_Time.Time;
Time_Span : Ada.Real_Time.Time_Span;
Seconds_Count : Ada.Real_Time.Seconds_Count;
begin
Current_Real_Time := Ada.Real_Time.Clock;
Ada.Real_Time.Split (
T => Current_Real_Time,
Sc => Seconds_Count,
Ts => Time_Span);
Test_Io.Put_Line("TRACE: Seconds_Count = " & Seconds_Count'Img);
end Time_Test;
Run Code Online (Sandbox Code Playgroud)