見出し画像

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");

画像1

画像2

どうでしょう。かなり簡単。苦労した甲斐ありました。

この記事が気に入ったらサポートをしてみませんか?