Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Namazu のコンパイルと日本語/英語
寺西です。
# 分かりやすいように、大雑把に説明しています。厳密には全然正しく
# ないので、鵜呑みしてはいけません。イメージだけ掴んでください。
# また、あえてそういう説明をしていますので、細かいツッコミはご容赦
# ください。と、前置きしておいて。
Yuichiro Sawatari wrote:
>
> > まず、cygwin 版を作りたいのか、Win32 ネイティブ 版を作りたいのか
> > どちらでしょう。
>
> 恥ずかしながら、cygwin 版と Win32 ネイティブ版の違いが分かっていません。
全然恥ずかしいことではないです。事情が複雑で分かりにくい話なんです。
Namazu はそもそも UNIX 用のソフトウェアで、これを Windows でも
使えるようにするためには、Windows で動く UNIX (という言い方をあえて
します。説明の便宜上。)でコンパイルするのが、簡単です。
Windows で動く UNIX、それが cygwin です。
Namazu を cygwin 環境でコンパイルすると、UNIX でコンパイルするのと
同じ感覚でコンパイルできます。出来上がった Namazu はもちろん Windows
で動きます。
ただ、cygwin 環境でコンパイルしてできた実行ファイルは、cygwin1.dll
が必要になります。この結果、
「アプリケーションの実行速度が遅くなることに加え、アプリケーションが
GPL に従ったコンポーネントに依存するという事実は、 Cygwin の GCC で
ビルドされた全てのアプリケーションもまた GPL に従うことになるという
ことを意味するのです! 」となります。
まぁ、Namazu は GPL なので GPL になるのは良いのですが、実行には
cygwin 環境が必要ということになります。
一方、MinGW で生成されたアプリケーションは単独で Windows 上で
動作します。このため、GPL の縛りはありません。
VC++, Boland C++ でコンパイルして作成したバイナリと同じ感覚です。
こちらの方がよりスマートですね。
で、すこしややこしくなるのですが、MinGW は C コンパイラ、ヘッダ、
ライブラリなどの開発環境のみなので、これだけで UNIX プログラムを
コンパイルするのは大変です。GNU ツール群がないためです。
そこで、cygwin 環境で MinGW 形式のバイナリをコンパイルするという
方法が -mno-cygwin オプションです。
# 本来なら、cygwin 環境を使って、MinGW 形式のバイナリ(cygwin1.dll
# のいらない)が作れるのですが、どうも猿渡さんの環境ではうまく
# コンパイルできていないようですね。
で、更にややこしくなるのですが、MSYS (MinGW SYS) という GNU ツール
を集めたパッケージを使うと cygwin のような環境を MinGW の環境
で作れるのです。MSYS を使った MinGW 環境なら、もはや cygwin は必要
ないはずです。
# 正確ではないと思いますが、MSYS を含めて MinGW を指していることも
# あります。
というような感じになります。結局、
・cygwin 環境でコンパイル -> cygwin 版
・cygwin 環境で MinGW でコンパイル -> Win32 ネイティブ版
・MSYS 環境で MinGW でコンパイル -> Win32 ネイティブ版
ということになりますかね。
大体わかったところで、「cygwin」「MinGW」「MSYS」を調べてしっかり
理解しましょう。それらについての質問は、それぞれのコミュニティで
お聞きください。
> > 対処方法も書いてあるので、その通りに対処しましょう。
>
> 過去ログ
> http://www.namazu.org/ml/namazu-win32-users-ja/msg01544.html
> で紹介されていた
> http://www.mingw.org/msys.shtml
> の Download から MinGW-3.1.0-1.exe をダウンロードしました。
Cygwin版 make か、MSYS 版 make を使うことと書いてありますが、ご理解
されていますか?
対処方法をしっかり読んで、その通りに対処しましょう。
> > そして、それは cygwin 版なので、MinGW 版なら /mingw/bin に gettext.exe
> > /mingw/lib に libintl.a 等が入っているでしょうか?
>
> 上記 MinGW には、
> /mingw/bin/gettext.exe も /mingw/lib/libintl.a も入っていませんでした。
MSYS を入れると入りませんか?
ないなら MinGW で GNU gettext をインストールするという作業が必要に
なります。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E