在OS / X上用gnat编译ada库gnatcoll-json.adb

时间:2013-06-05 10:44:34

标签: json macos ada gnat

我从[{1}}获得了来源,所以它应该可行 - 我在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 文件中的遗漏的正文似乎是第一个问题。例如, Prepend 的主体不在该文件中 - 但我认为正文应该在gnatcoll.ads文件中,而不是gnatcoll.adb档案无论如何。

1 个答案:

答案 0 :(得分:0)

GNATColl旨在使用相当标准的configure / make / make install流程构建。您可以通过查看分发中的docs/building.rst了解更多信息;我没有用于构建可安装版本的Sphinx program,但它的可读性非常好。还有docs/json.rst告诉您如何在安装GNATColl后使用JSON支持。

在发行版的根目录中,

$ ./configure --prefix=/your/preferred/install/location # default is /usr/local
$ make
$ sudo make install # if /your/preferred/install/location isn't user-writable