无法编译使用 ncurses 的 C/C++ 代码

Not able to compile C/C++ code that's using ncurses

本文关键字:C++ 代码 ncurses 编译      更新时间:2023-10-16

我刚刚发现了ncurses,并且刚刚开始学习它,但是我的教程中的示例并没有在我的计算机上编译。

我不得不手动安装ncurses,并通过输入"apt-get-install libncurses5dev libncURes5dev"来完成安装。我不得不这么做,因为在这么做之前,我收到了一个错误,说我不能"#include"。

安装它成功了,但现在我得到了这个错误:

touzen@comp:~/learning_ncurses$ g++ -o hello_world hello_world.cpp
/tmp/ccubZbvK.o: In function `main':
hello_world.cpp:(.text+0xa): undefined reference to `initscr'
hello_world.cpp:(.text+0x16): undefined reference to `printw'
hello_world.cpp:(.text+0x1b): undefined reference to `refresh'
hello_world.cpp:(.text+0x20): undefined reference to `stdscr'
hello_world.cpp:(.text+0x28): undefined reference to `wgetch'
hello_world.cpp:(.text+0x2d): undefined reference to `endwin'
collect2: ld returned 1 exit status

我编译的代码如下:

#include <ncurses.h>
int main(){
    initscr();
    printw("Hai thar world...");
    refresh();
    getch();
    endwin();
    return 0;
}

为什么会出现此错误。更重要的是,我该如何解决这个问题?

您必须链接ncurses库

g++ -o hello_world hello_world.cpp -lncurses