如何将用DEC Ada编写的应用程序迁移到Windows?
我有一个在OpenVMS DEC Ada环境中用Ada编写的批处理应用程序,我需要将其移植到Windows如何将用DEC Ada编写的应用程序迁移到Windows?,windows,ada,openvms,vax,Windows,Ada,Openvms,Vax,我有一个在OpenVMS DEC Ada环境中用Ada编写的批处理应用程序,我需要将其移植到Windows 我应该如何处理这个问题?我假设您不需要继续从相同的代码库维护DEC Ada版本。至少存在两个可能的技术障碍 首先,由GNAT使用(您没有说,但我猜您将使用GNAT)。默认情况下,GNAT希望每个文件包含一个编译单元(spec或body):所以 将位于文件pkg.ads中,并且 package body Pkg is ... end Pkg; 将位于文件pkg.adb中。编译以Pkg
我应该如何处理这个问题?我假设您不需要继续从相同的代码库维护DEC Ada版本。至少存在两个可能的技术障碍 首先,由GNAT使用(您没有说,但我猜您将使用GNAT)。默认情况下,GNAT希望每个文件包含一个编译单元(spec或body):所以 将位于文件
pkg.ads
中,并且
package body Pkg is
...
end Pkg;
将位于文件pkg.adb
中。编译以Pkg开头的文件时
GNAT查找pkg.ads
(而不是pkg.ads
,不过在Windows或macOS上,它不区分大小写,但保留大小写的文件系统可以解决这个问题)
您可以使用gnatchop来完成此操作
gnatchop *.ada chopped
将所有*.ada
源文件拆分为GNAT在目录中所需的文件
这里可能出错的一件事是,如果给定的单元位于多个源文件中;您必须决定要保留哪一个版本(或者,如果需要两个版本来处理不同的环境,那么应该怎么做)
如果gnatchop不能满足您的需要,您可以尝试gnatname(上述参考,或)
其次,DEC Ada支持许多特定于VM的特性。这是否会影响您取决于应用程序的原始程序员使用它们的程度。你最好的选择是尝试一下;如果遇到问题,请再问一遍(请用另一个问题!)每当我将Ada从一个编译器/平台移植到另一个编译器/平台时,我总是跳入池的最深处,即直接进行移植
获取目标平台上的文件和目录,使用gnatchop或gnatname(根据Simon的回答)处理文件命名,设置项目文件(我在gps中以交互方式执行此操作),然后按F4键(Build Main)
根据需要进行修复。您是否尝试过安装GNAT Ada编译器并使用它编译应用程序?
gnatchop *.ada chopped