web-dev-qa-db-ja.com

ncursesを使用しているC / C ++コードをコンパイルできません

Ncursesを発見し、学習を始めたばかりですが、チュートリアルの例はコンピューターでコンパイルされません。

Ncursesを手動でインストールする必要があり、「apt-get installlibncurses5-devlibncursesw5-dev」と入力してインストールしました。これを行う前に、「#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;
}

なぜこのエラーが発生するのですか。そしてさらに重要なのは、これをどのように修正するのですか?

15
Touzen

ncursesライブラリをリンクする必要があります

g++ -o hello_world hello_world.cpp -lncurses
33
Karoly Horvath