我有一个即将到来的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上对我有用。
安装:
$ sudo apt-get install\
libncurses-dev\
libncursesada-doc\
libncursesada6.2.20180127\
libncursesada6.2.20180127-dev
创建新目录:
$ cd ~
$ mkdir rain
$ cd ~/rain
现在建立。在这种情况下,我们需要使用-aI
(另请参阅here)提供对源目录的引用。但是,链接失败。似乎GNATmake不会将交换机-lncursesada
传播到链接器(不确定原因),所以我在一个单独的步骤中完成了它(请参见下文):
$ gnatmake \
-aI/usr/share/doc/libncursesada-doc/examples \
-aI/usr/share/ada/adainclude/ncursesada \
-lncursesada \
-vh \
rain.adb
[...]
x86_64-linux-gnu-gnatlink-8 rain.ali (???)
[...]
链接(由于GNATmake失败)。
$ gnatlink -lncursesada rain.ali