ubuntu に ncurses を入れてみる(1)

MS-DOS テキストモードのC言語プログラムを移植しようと思い、
ubuntu に ncurses を入れてみることにしました。
※おそらく、実行用のライブラリは標準でインストールされていますが、
 開発用のヘッダファイルやマニュアル等はインストールされていないと思います。

(2)で ubuntu 公式の libncursesw5-dev パッケージのインストールを説明しています。
ubuntu に ncurses を入れてみる(2)

ncurses の説明は、ここが分かりやすいと思います。
lf233, SoftwareDevelopment: Ncurses 入門

ncurses のホームページ・サイト
Announcing ncurses 6.0 - GNU Project - Free Software Foundation (FSF):

ncurses のダウンロード・ページ
http://ftp.gnu.org/gnu/ncurses/

最新は ncurses 6.0 ですが、ウェブで調べたら、コンパイラ gcc のバージョンが古いので、
コンパイルできず、インストールできないとのこと。

失敗に備えて、ubuntu のインストールDVDから「ubuntu を試す」でテスト。
(ubuntu のインストール済HDDを壊さないように)

それで ncurses 5.9 をダウンロードしたのですが、それでもコンパイルエラーが出て失敗しました。
OSは ubuntu 16.04LTS 64bit
gcc は 5.3.1

$ make
......
gcc -DHAVE_CONFIG_H -I../ncurses -I. -D_GNU_SOURCE -DNDEBUG -I. -I../include -O2 --param max-inline-insns-single=1200 -c ../ncurses/lib_gen.c -o ../objects/lib_gen.o
In file included from ../ncurses/curses.priv.h:283:0,
from ../ncurses/lib_gen.c:19:
_10689.c:835:15: error: expected ‘)’ before ‘int’
../include/curses.h:1594:56: note: in definition of macro ‘mouse_trafo’
#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
^
Makefile:790: ターゲット '../objects/lib_gen.o' のレシピで失敗しました
make[1]: *** [../objects/lib_gen.o] エラー 1
make[1]: ディレクトリ '/home/ubuntu/ダウンロード/ncurses-5.9/ncurses' から出ます
Makefile:109: ターゲット 'all' のレシピで失敗しました
make: *** [all] エラー 2

ncurses 5.7 はコンパイルできて、
Hello World プログラムもコンパイルでき、 Hello, world が表示されました。

手順


ダウンロード・ページから ncurses-5.7.tar.gz をクリックしてダウンロード
ダウンロード フォルダ内の ncurses-5.7.tar.gz を右クリック、ここに展開する
ダウンロード フォルダ内に ncurses-5.7 サブフォルダができるので、開く
その中の doc/html/NCURSES-Programming-HOWTO.html に説明があります(英語)
その 1.3 がインストール手順です。これを参考に、端末を開いて

cd ~/ダウンロード/ncurses-5.7
./configure
make
sudo make install

その 2.1 が Hello World プログラムです。

gedit hello.c

でファイルを作り、コードを貼り付けて保存・終了

gcc hello.c -lncurses

でコンパイルして

./a.out

を実行して

Hello World !!!

と表示されれば動作しているでしょう。
何かキーを押すと戻ります。


それでは、説明を読みながらおいおい試してみることにしましょう。
日本語(マルチバイト文字)が使えるかどうか??

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック