Ubuntu 19.10 下 Ada 2012 的 NCurses 构建环境

NCurses build environment for Ada 2012 under Ubuntu 19.10

我有一个即将推出的 Ada 项目(命令行交互式控制台程序),我想使用 ncurses 之类的东西来简化屏幕管理。

我已经安装了以下软件包(在 Ubuntu 19.10 和最新更新下):

在“....../libncursesada-doc/examples/”目录中有相当多的演示程序,尝试构建其中任何一个都会引起投诉,例如:

$ gnatmake rain
aarch64-linux-gnu-gcc-8 -c rain.adb
rain.adb:44:06: file "terminal_interface.ads" not found
rain.adb:44:06: "Rain (body)" depends on "Ncurses2.Util (spec)"
rain.adb:44:06: "Ncurses2.Util (spec)" depends on "Terminal_Interface (spec)"
rain.adb:47:06: file "terminal_interface.ads" not found
gnatmake: "rain.adb" compilation error

这个丢失的文件是否表明这组软件包已损坏,或者我只是在某处遗漏了一个?

或者换句话说,我是不是用 ncurses 找错了树?有没有适合 Ada 的现代替代品?

这对我在 Debian 10 上有效。

GNAT 版本:

$ gnat --version
GNAT 8.3.0
Copyright (C) 1996-2018, Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

安装:

$ sudo apt-get install \
  libncurses-dev \
  libncursesada-doc \
  libncursesada6.2.20180127 \
  libncursesada6.2.20180127-dev

创建一个新目录:

$ cd ~
$ mkdir rain
$ cd ~/rain

现在构建。在这种情况下,我们需要使用 -aI(另见 here) and link with libncursesada using -largs -lncursesada (see also here)提供对源目录的引用:

$ gnatmake \
  -aI/usr/share/doc/libncursesada-doc/examples \
  -aI/usr/share/ada/adainclude/ncursesada \
  rain.adb \
  -largs -lncursesada