質問

getch() を動作させてキー押下をキャプチャしようとしています。

    #include <curses.h>
    ...
    ...
    WINDOW *w;
    char f;

   w = initscr();
   timeout(3000);
   f = getch();
   endwin();

次のエラーが発生します:-

undefined reference to `wgetch'
undefined reference to `stdscr'
役に立ちましたか?

解決

それはリンクエラーです。正しくcursesライブラリにリンクしていますか?

C でライブラリを使用するには 2 つの手順が必要です。

  1. あなた #include ソース ファイルから関連するヘッダー ファイルを取得します。これは、コードがライブラリ関数のシグネチャを認識するためです。つまり、これを正しく行っているのです。
  2. コードをコンパイルするときは、関連するライブラリにリンクするようにリンカーに指示し、それらの関数の定義を見つけられるようにする必要があります。 これはあなたがやっていないことです. 。gcc を使用していると仮定して、追加します -lncurses コンパイルラインでそれを行う必要があります。ここにあります リンクの説明.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top