Ada 编译规范文件时出错
我对艾达有点生疏。我在自己编译规范文件时看到以下错误:Ada 编译规范文件时出错,ada,Ada,我对艾达有点生疏。我在自己编译规范文件时看到以下错误: gcc -c shapes.ads cannot generate code for file shapes.ads (package spec) gnatmake: "shapes.ads" compilation error 代码在使用主体构建时工作,我可以运行使用该包的程序 那么问题出在哪里呢?这个.ads文件只包含一个包的规范。如果它需要一个主体,就不能这样编译。您必须编译.adb文件 将其视为一个C头(.h)文件。您也不编译它们
gcc -c shapes.ads
cannot generate code for file shapes.ads (package spec)
gnatmake: "shapes.ads" compilation error
代码在使用主体构建时工作,我可以运行使用该包的程序
那么问题出在哪里呢?这个.ads文件只包含一个包的规范。如果它需要一个主体,就不能这样编译。您必须编译.adb文件 将其视为一个C头(.h)文件。您也不编译它们,只编译.c文件
PS:您可以使用gnatmake,它应该自动解析依赖项并编译所需内容。这不是一个真正的错误。(是的,我知道它看起来像一个:-) GNAT的工作方式是将单元的目标代码(包规范和主体,以及任何“is分离”)放在单个“.o”目标代码文件中。因此,在编译主体时会得到目标代码文件——编译主体时会自动引入规范——但不仅仅是规范 例外情况是规范不需要主体,即它不包含需要主体的声明,例如子程序或任务