Cygwinについて
トップページ Unix Cygwin Vim WindowMaker Zsh テスト H.O,K. curry 日記


Cygwin+X

私は普段, Cygwin+Xの環境を使用しています.

Cygwinとは, 旧cygnus社(現在redhatが買収)が作成した, Windows上での, Unixエミュレータです.

Posix(Unixの標準規格)にあわせたシステムインタフェース cygwin1.dllで実装しています. (実際にソースは見ていませんが .....)

そのため, Linuxと非常によく似たインターフェースを持っています.

わたし自身, OSとしてはUnixの方が断然使いやすいのですが, 職場でMS-Wordを強要されたり, デバイスドライバをインストールするのが大変だったり で, Cygwin+Xを利用しています.

Cygwin+X環境を整えるには, Cygwin + X + 日本語アプリケーション のサイトが訳立つと思います.

Cygwin/Xコンパイル時の注意点

ここでは, Cygwin/Xのコンパイルについての注意点(メモ)を記述します.

cygX11-6.dllの用意

/usr/X11R6/bin/cygX11-6.dll は, デフォルトでは日本語表示に支障があるため, 下記のサイトから入手する. (自力コンパイルも可能であるが, 非力なマシンでは大変時間がかかる. ) =

<locale.h>でなく<X11/locale.h>を使う.

locale.h は, "C"ロケールしかサポートしてないようですので, X11/locale.hを使用します.

コンパイル時には, -DX_LOCALE オプションをつけてコンパイルします. (X_LOCALEが設定されていないと, X11/locale.hは locale.hを読み込む設定になっています. )

XwcDrawString でなく, XmbDrawStringを使用する.

XwcDrawStringでは, どうやらうまく日本語表示ができないようです.

cygwinでw3mimgdisplay.exeをコンパイルする

w3m(テキストブラウザ)には, 画像をインライン表示する機能が あります.

VineLinuxなどでは, ディストリビューションに格納されている w3mimgdisplayが正常に動作しますが, Cygwinのsetup.exe で取得できるw3mのw3mimgdisplay.exeは, 正常に動作しません.

そこで, w3mをソースからコンパイルしようと考えたわけです.

必要なもの

  • w3mのソースコード (0.5.1使いました)
  • gdk-pixbufのソースコード (0.22.0を使いました)
  • gtk+ (1.2です, setup.exeから取得したライブラリ)
  • gmodule (1.2です. setup.exeから取得したライブラリ)

その他, libjpeg, libpng, libtiffなどが必要になると思います.

※ gdk-pixbuf-xlib-2.0を, setup.exeからインストール可能ですが, w3mで使用できるのは, 1.x系のgdk-pixbufのようです.

gdk-pixbufのコンパイル

通常にコンパイル(./configure ; make)ではコンパイルできません.

まず, ./configureをしましょう.

./configure --prefix=/usr/local

./configure した後, 以下のMakefileの編集が必要です.

./demo/Makefile
./gdk-pixbuf/Makefile
./gdk-pixbuf/pixops/Makefile

Makefileの変数を以下のように設定します.

● glibの設定
GLIB_CFLAGS = `pkg-config --cflags glib`
GLIB_LIBS =  `pkg-config --libs glib`
● gmoduleの設定
GMODULE_FLAGS =  `pkg-config --cflags gmodule`
GMODULE_LIBS =  `pkg-config --libs gmodule`
● gtk+の設定
GTK_CFLAGS = `pkg-config --cflags gtk+`
GTK_LIBS = `pkg-config --libs gtk+`

gds-pixbuf/test-gdk-pixbuf.exe と demo/pixbuf-demo.exe コンパイル時に -lpng -ltiff -ljpeg オプションがないためコンパイルに失敗するかも 知れません. そのときは, makeの出力メッセージをみて 手でコンパイルしましょう.

コンパイルが終了すれば, make installをしましょう.

ヘッダファイルのディレクトリにシンボリックリンクを作成します.

$ cd /usr/local/include/gdk-pixbuf-1.0$ 
$ ln -s gdk-pixbuf gdk-pixbuf-xlib

w3mのコンパイル

まず, configureを行います.

./configure --prefix=/usr/local --enable-FEATURE --with-PACKAGE

config.hを編集して強制的に以下のオプションを設定します.

$ vi ./config.h
#define USE_W3MIMG_X11 1
#define USE_GDKPIXBUF 1

さらに, Makefileも修正します.

$ vi ./Makefile
# IMGLDFLAGS変数の値を変更します. 
IMGLDFLAGS = /usr/local/lib/libgdk_pixbuf_xlib.a \
  `pkg-config --libs  gdk` \
  -ltiff -lpng -ljpeg \
  -L/usr/X11R6/lib -lXext -lX11

$ vi w3mimg/x11/Makefile
# ファイルの先頭に以下の行を追加します. 
IMGCFLAGS  = -I/usr/local/include/gdk-pixbuf-1.0 \
   `pkg-config --cflags gdk`

$ vi w3mimg/Makefile
# IMGOBJSの値を変更します. 
IMGOBJS=w3mimg.o  x11/x11_w3mimg.o

その後, make && make installを行います.

私がコンパイルした w3mimgdisplay.exe を以下においておきます. w3mimgdisplay.exe.gz(0.5.1)

解凍後, /usr/local/libexec/w3mディレクトリに配置すれば使用できると 思います.

Cygwinリンク

Cygwinに関して, 私がよく参照するページをリンクしておきます.

Project HeavyMoon(重月計画)

Cygwin + X + 日本語アプリケーション

勝手にリンクさせていただいております.

都合の悪い方は, sakaihdt@d2.dion.co.jpまで御連絡ください.


トップページ Unix Cygwin Vim WindowMaker Zsh テスト H.O,K. curry 日記