Очевидно, что вам не хватает ссылки на библиотеку, на которую readline
опирается. В моей системе я получаю
$ readelf --dynamic --symbols --wide /usr/lib64/libreadline.so.7.0 | fgrep tputs
17: 0000000000000000 0 FUNC GLOBAL DEFAULT UND tputs
т.е. tputs
является внешней ссылкой в коде readline
.
РЕДАКТИРОВАТЬ: библиотека будет libtinfo
:
$ readelf --dynamic --symbols --wide /usr/lib64/libtinfo.so.6 | fgrep tputs
199: 0000000000019a30 151 FUNC GLOBAL DEFAULT 12 tputs
245: 00000000000195f0 930 FUNC GLOBAL DEFAULT 12 tputs_sp
Таким образом, решение будет использовать -lreadline -ltinfo
.
В целом, я бы предложил не компилировать библиотеки самостоятельно, а вместо этого установить пакеты -dev(el)
, предоставляемые вашим дистрибутивом Linux. Тогда вы можете использовать, например, pkg-config
команда для автоматического обнаружения правильных флагов C и параметров компоновщика для библиотеки.