我有来自 的来源Adacore
,所以它应该可以工作 - 我也在 Adacore 上留下了一个“问题”,但可能需要一些时间才能在那里得到解决。我怀疑我可能做错了什么,有什么建议吗?
这是问题所在:
$ gnat make gnatcoll-json.adb
gcc -c gnatcoll-json.adb
gnatcoll-json.adb:33:23: missing body for "Prepend" declared at gnatcoll-json.ads:64
gnatcoll-json.adb:33:23: missing body for "Create" declared at gnatcoll-json.ads:99
gnatcoll-json.adb:33:23: missing body for "Set_Field" declared at gnatcoll-json.ads:144
gnatcoll-json.adb:33:23: missing body for "Get" declared at gnatcoll-json.ads:173
gnatcoll-json.adb:33:23: missing body for "Get" declared at gnatcoll-json.ads:206
gnatcoll-json.adb:454:63: prefix of dereference must be an access type
gnatcoll-json.adb:641:33: invalid operand types for operator "/=" gnatcoll-json.adb:641:33: left operand has private type "UTF8_Unbounded_String" defined at gnatcoll-json.ads:47
gnatcoll-json.adb:641:33: right operand has an access type
gnatcoll-json.adb:642:19: no candidate interpretations match the actuals:
gnatcoll-json.adb:642:28: expected type "Counter" defined at gnatcoll-json.ads:239
gnatcoll-json.adb:642:28: found private type "Ada.Strings.Unbounded.Unbounded_String"
gnatcoll-json.adb:642:28: ==> in call to "Free" at gnatcoll-json.ads:289
gnatcoll-json.adb:642:28: ==> in call to "Free" at gnatcoll-json.ads:287
gnatcoll-json.adb:642:28: ==> in call to "Free" at gnatcoll-json.ads:285
gnatcoll-json.adb:642:28: ==> in call to "Free" at a-strunb.ads:88
gnatcoll-json.adb:714:24: expected private type "Ada.Strings.Unbounded.Unbounded_String"
gnatcoll-json.adb:714:24: found type access to "UTF8_String" defined at line 714
gnatcoll-json.adb:841:28: prefix of dereference must be an access type
gnatmake: "gnatcoll-json.adb" compilation error
我可以看到文件中那些丢失的正文gnatcoll.ads
似乎是第一个问题。确实,例如Prepend的主体不在该文件中 - 但我认为主体应该在gnatcoll.adb
文件中,而不是gnatcoll.ads
文件中。