Linux で Curses を実行すると次のエラーが発生するのはなぜですか?
-
19-09-2019 - |
質問
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 つの手順が必要です。
- あなた
#include
ソース ファイルから関連するヘッダー ファイルを取得します。これは、コードがライブラリ関数のシグネチャを認識するためです。つまり、これを正しく行っているのです。 - コードをコンパイルするときは、関連するライブラリにリンクするようにリンカーに指示し、それらの関数の定義を見つけられるようにする必要があります。 これはあなたがやっていないことです. 。gcc を使用していると仮定して、追加します
-lncurses
コンパイルラインでそれを行う必要があります。ここにあります リンクの説明.
所属していません StackOverflow