我對Ada有點新鮮。我看到下面的錯誤在自己編譯規格文件時:當它建立與身體,我可以運行使用包的程序編譯Spec文件時出錯
gcc -c shapes.ads
cannot generate code for file shapes.ads (package spec)
gnatmake: "shapes.ads" compilation error
代碼工作。
那麼問題是什麼?
我對Ada有點新鮮。我看到下面的錯誤在自己編譯規格文件時:當它建立與身體,我可以運行使用包的程序編譯Spec文件時出錯
gcc -c shapes.ads
cannot generate code for file shapes.ads (package spec)
gnatmake: "shapes.ads" compilation error
代碼工作。
那麼問題是什麼?
這不是一個真正的錯誤。 (是的,我知道它看起來像一個:-)
GNAT的工作方式是一個單元(包規格和正文,和任何「分離」)的目標代碼放在一個單一的「.o 「,目標代碼文件。因此,當您編譯主體時,您會得到目標代碼文件 - 其編譯會自動導入規範 - 但不是單獨規範。
規範不要求主體的例外是,即它不包含需要主體的聲明,如子程序或任務。
.ads文件只包含一個包的規範。如果它需要一個機構,你不能這樣編譯它。您必須編譯.adb文件。
認爲它像一個C頭(.h)文件。你也不要編譯它們,只有.c文件。 PS:你可以使用gnatmake,它應該自動解決依賴關係並編譯需要的東西。
gnatmake就是答案。 – 2012-04-03 16:09:18