2012-03-29 53 views
2

我對Ada有點新鮮。我看到下面的錯誤在自己編譯規格文件時:當它建立與身體,我可以運行使用包的程序編譯Spec文件時出錯

gcc -c shapes.ads 
cannot generate code for file shapes.ads (package spec) 
gnatmake: "shapes.ads" compilation error 

代碼工作。

那麼問題是什麼?

回答

3

這不是一個真正的錯誤。 (是的,我知道它看起來像一個:-)

GNAT的工作方式是一個單元(包規格和正文,和任何「分離」)的目標代碼放在一個單一的「.o 「,目標代碼文件。因此,當您編譯主體時,您會得到目標代碼文件 - 其編譯會自動導入規範 - 但不是單獨規範。

規範不要求主體的例外是,即它不包含需要主體的聲明,如子程序或任務。

2

.ads文件只包含一個包的規範。如果它需要一個機構,你不能這樣編譯它。您必須編譯.adb文件。

認爲它像一個C頭(.h)文件。你也不要編譯它們,只有.c文件。 PS:你可以使用gnatmake,它應該自動解決依賴關係並編譯需要的東西。

+1

gnatmake就是答案。 – 2012-04-03 16:09:18