nDiki : MinGW

MinGW - Minimalist GNU for Windows

WindowsGCC および関連ユーティリティ、ヘッダファイル、ライブラリのセット。

POSIX/Bourne configure スクリプトを実行して Makefile を生成するのに必要なコマンドについては、MSYS を使用する。

Debian パッケージ

  • mingw32
  • mingw32-binutils
  • mingw32-runtime

公式サイト

関連情報

スポンサード リンク

2004年7月24日 (土)

WindowsGNU Make

Windows だと nmake がやっぱり主流だろうか。 しかし GNU Make とは違う点が多く、使い分けるのも面倒。 かといって Ant というのも面倒。

ということで気軽に使える Windows 用の GNU Make を探す。 Cygwin 版は共同作業者に入れてもらうのが面倒なので却下(Makefile から呼ばれるコマンド群もLinuxと同様のものが入るのでこちらの方が便利といえば便利ではあるのだが)。

MinGW版が 3.80 をポーティングしているし単体でも動きそうなのでこれを試してみることにする。

mingw32-make-3.80.0-3.exe を取ってきて実行。make そのものだと思っていたがマニュアル等を含むインストーラだった。 一旦インストールして、mingw32-make.exe をコピーしてアンインストール。 mingw32-make.exe 単体で動作するので取り扱いが楽でよい(必要なら make.exe にでもリネーム)。

Windows 特有の問題があるかどうかは今後使ってみてチェックだな。

スポンサード リンク
[ 7月24日全て ]

2004年8月5日 (木)

WindowsGNU tar

この間 Windows 用の GNU Make として MinGW版を選択して、プロジェクトのドキュメントのビルドの自動化をすすめている。

しかし(最初からわかっていたのだが)make だけでは駄目で各ユーティリティがなくて結構不便。 touch すら無いし。 幸い全員の環境に ActivePerl が入っていることが前提になっているので、必要ならスクリプトを書いていけばある程度はなんとかなる。

今日は、プロジェクトで開発したPerl モジュールのソースアーカイブを自動的に一時ディレクトリに展開して pod2latex をかけてごにょごにょという処理の Makefile を書く。 さすがに tar が無いと無理だ (Archive::Tar を使うという手もなくはないが結局標準ではないし)。

GnuWin32

ということでGNU tarを探す。例によってインストール不要という条件で。

MinGW の中からは探せず。 GnuWin32 のものを使ってみる。 ついでに gzip

  • tar.exe (GNU tar tar-1.13-1-bin.zip)
    • libiconv-2.dll (libiconv-1.8-1-bin.zip)
    • libintl-2.dll (libintl-0.11.5-2-bin.zip)
  • gzip.exe (gzip-1.3.5-bin.zip)

fork できないとかで tar の -z オプションが使えない。かなりがっかり。

texinst753 (W32TeX Web2C-7.5.3 簡易インストーラ)

あれ、gzip が最初からPATH上にあるなと思ったら、texinst753 に含まれていた奴。 GNU tar も入っている。 ちょっとバージョンが古めだけど -z も効くし、これが扱いやすいかも。

なにより他のプロジェクトメンバの Windows BOX にもそれぞれ入っているはずだし。

ということで GNU tar 確保。

[ 8月5日全て ]

2005年2月23日 (水)

ActivePerlMing

ActivePerlMing を使えるようにしておきたい。

Visual Studio

Ming 0.3 beta1 のソースパッケージには Visual Studio 6.0 用のプロジェクトファイルが含まれている。 Cygwin の Bison と flex があればライブラリをビルドできるようだ。 横着して Linux 側で bison と flex で生成したファイルをコピーして(それから unistd.h をインクルードしている部分を消して)、ビルドしてみたところ一応 lib ファイルは作成成功。

しかし ActivePerl 用にPerl モジュールの make は失敗。

MinGW + nmakeActivePerl のモジュールをビルドできるらしい

調べたところ ExtUtils::FakeConfig を使うと Visual Studio が無くても MinGW + nmake でモジュールをビルドできるらしい(全てではないと思うが)。

ということで MingMinGWビルドした後、そのまま ActivePerl 用モジュールの作成まで持ち込むことにしてみる。

MinGW + MSYS + GnuWin32開発環境を構築

コンパイルに必要な環境を MinGW で、configure に必要な環境を MSYS で用意する。

bison は GnuWin32

Mingビルドに必要な Bison は MinGWMSYSインストーラに含まれていない。 bison-1.875.0-2003.02.10-1.exe というのが別途あるがうまく動かない。

ソースパッケージ(bison-2.0.tar.gz、bison-1.875.tar.gz)からはビルドできず。 MinGW/MSYSのプロジェクトにある bison-1.875-2003.02.10-1-src.tar.gz はビルドできるものの make check が通らない。

とうことで GnuWin32 の bison-1.875-4.exe (インストーラ形式)をインストール。 c:/usr/local/GnuWin32インストールした後、MSYS の /etc/fstab で /GnuWin32 にマウントし、/GnuWin32/bin に PATH を通しておく。

flexソースパッケージから

flex-2.5.4a.tar.gz を展開して

 ./configure; make; make check; make install

インストール時ハードリンクが作れなくてエラーがでているようだが無視。

zlib (Ming で必要)

MSYS 上でビルドしてインストール。zlib-1.2.2.tar.gz を展開して

 ./configure; make; make check; make install

LibUnGif for Windows (Ming で必要)

MSYS 上でビルドしてインストール。 libungif-4.1.0b1-src.zip を展開して

 rm config.cache;
 config.h内の-DHAVE_VARARGS_Hをコメントアウト。
 ./configure; make; make install

make check はエラーが出るが無視。

libpng (Ming で必要)

MSYS 上でビルドしてインストール。libpng-1.2.8-config.tar.gz を展開して

 CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure
 make; make check; make install

いよいよ Ming

MSYS 上でビルド。ming-0.3beta1.tar.gz を展開して

 CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib make static

ActivePerl 用モジュール作成

ExtUtils::FakeConfigPPM::MakeMingSWF PPM パッケージを作成する。 (MSYSシェルではなく)コマンド プロンプトを開いて、Mingソースパッケージの中の perl_ext に移動。 MSYSMinGWnmake にPATHを通しておく。

それから Makefile.PL の実行で -lz を発見できないので、libz.a を Makefile.PL と同じディレクトリにコピーしてしまう(-L/usr/local/lib を指定しても効かなかったので)。 libpng.a、libungif.a も同じくコピーしておく。

Makefile を作成。Makefile.PL では -lz しか指定していないが、libpng と libungif も必要なのでコマンドラインオプションで指定する。ExtUtils::FakeConfig の Config_m を使用して MinGW を使用するようにする。

 perl -MConfig_m Makefile.PL LIBS="-lpng -lungif -lz"

ここで生成される Makefile の中で libperl58.a を指定している部分があるが、ActivePerl では perl58.lib になるので、エディタで書き換え。 後はいつも通り

 nmake
 nmake test
 make_ppm

PPM パッケージ作成完了。

簡単なPerlプログラムでSWFファイルが作れる事を確認。 やった。

[ 2月23日全て ]

2005年3月30日 (水)

X-Deep/32 Xサーバ

Windows で Xサーバを使いたくなる衝動が時々やってくる。 今回は Linux 上の FirefoxWindows 側に表示させたいというのが希望。

Xサーバについては以前 Cygwin/X を試したりしたしてみたが、今は Cygwin 自体をアンインストールしてしまっている。今回は別のものを試してみることに。

Xming

MinGW を使っている。 設定は Cygwin/X とほぼ同じらしい。 Xサーバ以外は特に何もはいっていないし、これなら Cygwin/X を使った方が便利そう。

X-Deep/32 4.6.5

マルチウィンドウモード+ルートウィンドウ無しでXサーバを起動し、Linux BOX を許可するホストに追加。 Linux BOX 側から DISPLAY 環境変数か --display オプションを設定して Firefox を起動。 これで Windows 側に Firefox のウィンドウが表示される。

日本語は今のところ入力不可。表示はできる。

しかし1つのFirefoxから2つのDISPLAYに同時にウィンドウを出せないのか(別プロセスになってしまい、同じプロファイルを同時に使えない)。 これでは今回の目的は達成できず。

ちなみに X-Deep/32 はXクライアントのランチャもついているのだが、rsh か rexec による起動になる。ちょっと使えない。

[ 3月30日全て ]

2009年2月22日 (日)

ActivePerl 5.8.9 build 825 + MinGW 5.1.4 + PARPerl スクリプトを実行可能ファイル

久しぶりに PAR の出番。 休日出勤して環境作り。

今回実行可能ファイルにしたい Perl プログラムが Perl 5.8開発・テストされているものの改訂版で、必要な PPM パッケージも 8xx 用に作りだめしてあるので、ActivePerl 5.8.9.825 上で行うことにした。

PAR::Packer は ActivePerl の build と合っていないとうまく動かないので、自分でソースからビルドして PPM パッケージ化する。 必要な依存モジュールのバージョンも軒並み上がっているので、それらもビルド

今まで Visual Studio 6.0 でビルドしていたのだけれど、この間 PC をかえてから入れていなかったので、今回は MinGW を使うことにした。 SourceForge.net 上から g++ をダウンロードしてネットワークインストールできないようなので、そこだけ SourceForge.JP で探してきてインストール

MinGW の bin ディレクトリを PATH に追加したら、特に問題なく Perl モジュールコンパイルできている。素晴しい。ExtUtils::FakeConfig 無くてもいいのかな。

[ 2月22日全て ]

2009年2月23日 (月)

今日のさえずり - くるみマフィンの賞味期限が2月30日

2009年02月21日

  • 11:49 YouTube 見てたら Linux フリーズした。 *P3
  • 11:53 リラックマストア東京駅店、昨日オープンか。 *P3
  • 13:42 西安餃子の半個室。 [mb]
  • 14:49 ズボン濡らしたのでイトーヨーカドーで新しいの買って着替え。 [mb]
  • 18:50 今日買ったくるみマフィンの賞味期限が2月30日だった。で、ハリマヤさんいったい賞味期限はいつなの? [mb]
  • 20:34 昼のエビチリ、2度辛いがきたっぽい。 *P3

2009年02月22日

  • 09:47 シェーキーズってまだあるんだ。最後にランチの食べ放題食べたのいつだろう。もう今行っても、もとを取れないだろうけど久々に食べたい。 [mb]
  • 09:55 @nakameP えーっ、シェーキーズってそんなに進化してたんですか。最後に行ったのは15年以上前かなあ。学生にはあのチープ感でも満足でした。 [mb]
  • 10:25 出社。 *P3
  • 10:53 JUDE/Server 2010年2月末日をもってバージョンアップ終了か。需要少なかったのかなあ。 *P3
  • 11:41 メモ用にと名刺入れに名刺サイズ方眼情報カードをずっと忍ばせていたんだけれど、基本 RHODIA 持ち歩く習慣がついているので使ったためしがない。かさばるだけなので捨てる。 *P3
  • 14:43 MinGW 5.1.4 インストール。 *P3
  • 15:41 SourceForge.net から MinGW の g++ がダウンロードできないので、そこだけ SourceForge.JP から取ってきてようやくはいった。 *P3
  • 17:45 PAR-Packer の nmake test をかけると、Norton Internet Security がしゃしゃり出てくる。 *P3
  • 18:11 ようやく PAR-Packer の nmake test が終わった。 *P3
  • 19:12 斜め向かいのちょっとバーコード始まっているおじさんがポータブル MD プレーヤーの外付けバッテリのネジにずっと苦戦している。カチャカチャ。 [mb]
  • 22:53 目が尋常なく痒い。 *P3

2009年02月23日

  • 12:59 PAR における DLL ファイルのファイル名の大文字小文字問題に翻弄されていた。 *P3
  • 13:02 PDL 今もきちんとバージョンアップしているんだな。ちょっと安心。 *P3
  • 19:02 納期間近の仕事集中的にやっていたけれど、そろそろルーチンワークもやっておかないとヤバい。 *P3
  • 20:27 さて帰る。 *P3
  • 20:44 切ない……。会社にマスク忘れてきた。 [mb]
  • 20:53 モバツイ不調なので久しぶりに PC2M 経由で本家。
  • 21:38 そろそろ RPG のアイテムに花粉症が出てきてもいい頃。 *P3
[ 2月23日全て ]

2009年8月25日 (火)

ActivePerl をやめて Strawberry Perl

ActivePerl 5.10.0.1005 + Visual Studio 2005 SP1 上で PAR::Packer を使って実行可能ファイル化したものの、今日別の環境で動かしたら「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした」というエラーがでてしまった。

今まで Visual Studio 6.0 で PPM パッケージの作成やら PAR::Packer による実行可能ファイル化をしていたので気がつかなかったのだが、調べてみると Visual Studio 2005 以降だとどうもいろいろ面倒らしい。

ActivePerl + PPM パッケージだと自分で PPM リポジトリを用意しておくことで、開発環境の統一が楽になるという利点があったのだけれどもしばらく一筋縄ではいかなさそうなので、別の Perl ディストリビューションを使ってみることにした。

Windows 上の Perl としてしばらく使ってみることにしたのは Strawberry Perl。現在のバージョンは 5.10.0.6。 以前にもちょっと入れてみたことはあったけれども、きちんと使ってみるのは初めて。

MinGW や dmake が同梱されており、CPAN.pm を使って UNIX 上と近い感覚で Perl モジュールインストールができる。 PAR::Packer を使って実行可能ファイル化した Perl スクリプトも実行できることを確認。

しばらく乗り替えてみることにする。

[ 8月25日全て ]

2013年7月24日 (水)

【日記】reveal.js とか、Windows 7 BOX に GHC 入れるとか

reveal.js でスライド作ったんだけれど、そういえばと思って FirefoxInternet Explorer で表示確認したらまともじゃなかった。Google Chrome で確認しながら作っていたので気がつかなかった。むむむ。もしかしたら HTML 的にシンタックスエラーがあって崩れている部分があるのかもしれないけれど。

あと Windows 上で Python スクリプトを(そのまま、あるいは実行可能ファイル(exe)化して)動かすのがちょっと流行っているので、GHC インストールした。Haskell の。Windows 版の GHCMinGW 使ってるのか。インストールは基本アーカイブを展開するだけ OK。

普段 Perl 使っているので、必要無いならあえて自分で Python 書くっていう気にならないのですよね。

今日のさえずり: ラジオ体操の深呼吸は第2のやつの方が好き

2013年07月24日

[ 7月24日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.074985s / load averages: 1.06, 1.20, 1.27
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker