Perlでコマンドプロンプトにサヨナラする(3)
前回の記事ではWin32を利用してメッセージボックスなどを表示しましたが、Windowsなら良いもののLinuxではどうしたものか、考えてみました。
Linuxでも同様にGUIを使うとすると、候補は次のとおりです。
・Tcl/Tk
・wxWidget
use Tk?
Tkは比較的お手軽な印象があったのですが…。
それもそのはず、Windowsの代表的なPerlであるActivePerlでは、最初からバンドルされていた時期があったり、Tkxがデフォルトで使えていたのですね。
で、今回はStrawberryPerlで使いたいのですが、これがなかなか大変でCPANで入れようとしても簡単には入らないようです。(いろいろ調べると、入らないわけではないようですが、それをさせますかねぇ…)
ちなみに、LubuntuのPerlにTkを入れようとしましたが、こちらも何故かうまく入らない。なので、今回はTkを使うのは諦めました、残念。
use wxWidget
では、wxWidgetはどうかといいますと、こちらもちょっと手間取りました。。。でも、インストールの仕方が分かったので後述します。
使ってみた印象ですが、こちらのほうがWin32を使うより簡単かもしれません。
■WindowsのStrawberryPerlにインストールするときのメモ
まずは、CPANでインストールを試みます。
CPAN install Wx
すると、エラーで止まります。(涙)
どうやら、callocに関するエラーのようですが、これについては対策の情報がありました。パッチ当てもあるようですが、すぐに修正できそうですのでインストール対象のソースを書き換えてみます。
StrawberryPerlのCPANにおいては、インストール対象のソースは次の場所に保存されます。(フォルダ名の後部"-0"は、試行数によっては増えているかも)
\Strawberry\cpan\build\Wx-0.9932-0\
修正したいファイルは、次のヘッダファイルです。
\Strawberry\cpan\build\Wx-0.9932-0\cpp\wxapi.h
このファイルに、「 #undef calloc」を追記してください。
#undef mallocの次あたりが良いと思います。
#undef getc
#undef getenv
#undef malloc
#undef calloc //ここに追加した
#undef open
#undef read
#undef realloc
追記が済んだら、手動でmakeをします。
StrawberryPerlには、makeに相当するgmakeがありますのでそれを使います。
cd \Strawberry\cpan\build\Wx-0.9932-0
\Strawberry\c\bin\gmake
\Strawberry\c\bin\gmake test
\Strawberry\c\bin\gmake install
■Linuxにインストールするときのメモ
CPANで簡単にインストールできる…と思っていたのですが、私の貧弱な環境ではmakeのテストでエラーが発生してしまいました。
どうやらxrcに関わるものらしいのですが、それ以上のことは分からず。
XMLリソースを使うためのライブラリとか足りないのかな…と調べましたが今ひとつ情報が得られず諦めかけたのですが。
「あれ?XML使わないからいいんじゃね?」
と思い、もしやと次のようにやってみました。
cd ~/Wx-0.9932
make
make install
(make testをやりませんでした ^^;)
で、結局どうなったかと言うと、エラー出ずにインストール完了しました。
正解のやり方ではないけど、限りなく近いことはできるかな、と。
入出力
さてもとりあえず。
インストールできた事実は素直に喜んで、メッセージボックスで入出力をしてみましょう。
次のプログラムを打ち込んでみます。
(日本語文字化け対策のため、utf-8のエンコードで保存してください)
use utf8;
use Wx;
my $strmsg= Wx::GetTextFromUser("文字列を入力してください", "Title");
Wx::MessageBox($strmsg, "Title");
どうでしょう。かなり簡単。苦労した甲斐ありました。