C语言使用ncurses库实现连续键盘输入报undefined reference错误
问题原因
你遇到的undefined reference链接错误是因为ncurses不属于C语言标准库,gcc编译时默认不会主动链接该库,需要手动指定链接参数。
解决方法
编译时在命令末尾添加-lncurses参数即可,示例命令如下:
gcc game.c -o game -lncurses
额外注意事项
- 如果执行编译命令后提示找不到ncurses库,可先安装对应系统的ncurses开发包:
- Debian/Ubuntu 系列:
sudo apt install libncurses5-dev - CentOS/RHEL 系列:
sudo yum install ncurses-devel
- Debian/Ubuntu 系列:
- 当前代码混合使用了标准库
printf和ncurses的终端控制接口,容易出现显示异常,后续优化建议统一使用ncurses提供的printw等输出函数 - 建议在程序退出逻辑中添加
endwin()调用,恢复终端默认配置,避免程序异常退出后终端出现输入不回显、换行异常等问题
内容的提问来源于stack exchange,提问作者joshua
相关产品推荐
相关产品推荐

