我正在尝试在代码中使用这些函数,但均不能正确编译。我收到类似undefined reference to 'alloc_pair'
和collect2: error: ld returned 1 exit status
的错误。其他功能(newwin,printw)可以正常工作。通过查看联机帮助页,似乎已经安装了这两个功能。我还检查了libncurses-dev changelog(使用apt),它列出了6.1版的新上游发行版(GNU ncurses日志显示它具有这些功能)。如何确保其正确安装?
uname -a
返回:
Linux hostname 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
编辑:我还使用if
检查来确保我正在使用ncurses 6.1。 (使用NCURSES_VERSION)
答案 0 :(得分:0)
Ubuntu的ncurses软件包仅支持ABI 5,这是因为2015中ABI 6是标准配置,这使得Ubuntu落后了一些。
如release notes中所述,您需要ABI 6才能使用较新的功能:
此发行版旨在与ncurses 5.0到6.0兼容。提供对应用程序二进制接口(ABI)的扩展。尽管仍可以将源配置为支持ncurses 5 ABI,但该发行版的目的是提供对ncurses 6 ABI的扩展:
您当然可以自己编译ncurses,或使用已升级到当前ABI的某些发行版,但是该源兼容性表明其他打包程序也可能不是最新的。