私は Ubuntu 12.04 を実行しています。現在、C、OpenGL、ティーポット、および入力メソッドを含むプロジェクトに取り組んでいます。
問題は、矢印キーを入力として使用することにしたときに始まりました。矢印キーのキー コードを確認しましたが、すべての矢印が 0 を返しました。これを機能させる方法を調べたところ、conio.h が見つかりました。残念ながら、これは Linux では使用できない古い DOS ヘッダーです。次に、ncurses という代替品を見つけました。
必要なライブラリをインストールした後、ビルド手順に厳密に従って、main.c ソースに curses.h を #include しました。gcc を使用して最初にコンパイルしようとしたとき、次のエラーが発生しました。
main.o:main.c:function _Key: error: undefined reference to 'stdscr'
main.o:main.c:function _Key: error: undefined reference to 'wgetch'
main.o:main.c:function _Key: error: undefined reference to 'stdscr'
main.o:main.c:function _Key: error: undefined reference to 'wgetch'
次のように -lncurses をメイクファイルに追加することで修正を見つけました。
SOURCES=main.c
main: main.o
gcc -lm -lGL -lGLU -lglut -lncurses main.o -o main
main.o: main.c
gcc -lm -lGL -lGLU -lglut -c main.c
しかし、別のエラーが発生しました。
/usr/bin/ld: error: cannot find -lncurses
以前のエラーと同様に。
過去 2 日間、Ubuntu フォーラムと StackOverFlow の両方を検索しました。どんな助けでも大歓迎です。
PS これが重要かどうかはわかりませんが、/usr/bin/ld を実行しようとすると、次のエラーが発生します。
ld: fatal error: no input files