已安装ncurses库但C++程序编译找不到ncurses.h如何解决
问题根因
这个报错出现在编译预处理阶段,而非链接阶段:你当前仅安装了ncurses的运行时库,缺少ncurses对应的开发头文件包,因此编译器无法找到ncurses.h头文件。执行locate libncurses仅能查询到二进制库文件,查不到头文件属于正常情况。
解决步骤
- 首先根据你使用的发行版,安装对应ncurses开发包:
- Debian/Ubuntu 系列:执行命令
sudo apt install libncurses-dev - Fedora/RHEL/CentOS 系列:执行命令
sudo dnf install ncurses-devel - Arch Linux 系列:执行命令
sudo pacman -S ncurses
- Debian/Ubuntu 系列:执行命令
- 开发包安装完成后,默认会将
ncurses.h放置到系统标准头文件搜索路径,直接使用原编译命令即可正常完成编译:g++ -o hello hellocurses.cpp -lncurses - 如果你使用的系统将ncurses头文件放在非标准路径(比如部分系统的宽字符版本ncurses头文件存放在
/usr/include/ncursesw目录),编译时手动指定头文件搜索路径即可:
也可以直接修改代码中的头文件引用为g++ -o hello hellocurses.cpp -I/usr/include/ncursesw -lncurses#include <ncursesw/ncurses.h>适配路径。
内容的提问来源于stack exchange,提问作者anony
相关产品推荐
相关产品推荐

