メニュー
Infomation
■お知らせ
[スパム対策]コメントにURLを含めると自動的に削除されます。
■このサイトについて
一応残していますが、全時代の遺物。全ての情報は古く役に立ちません 連絡先:メールアドレス
■日記更新情報
RSSRSS|RSS(本文のみ)|lirs
実験&リサーチ
巡回先
製作環境
 

 



2004|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|11|12|
2011|01|
2014|05|08|
2017|07|
2018|03|
2020|08|10|
2021|11|

2008年09月24日(Wednesday) [長年日記]

_ [日記][コンピュータ] Windowsのruby(mswin32)にerbscanをインストールする

tDiaryがかなり重たいのですがRAA:erbscanを入れると良いらしいので入れてみました。

Windows(i386)環境でやったら微妙に面倒だったので手順をメモ。


まずVisualStudio6.0を今さら入れるのも面倒だったのでいつも利用しているVisualStudio2005 Professional Editionを利用しました。

他のバージョンでも問題ないと思います。

VisualC++6.0だとMakefileの修正などは不要かもしれません。(未検証)

なお、rubyはi386-mswin32(Version 1.8.7)、Cドライブ直下にインストールしています。

VisualStudioもCドライブに普通にインストールしています。

環境に応じて適宜読み替えてください。


■Makefileの生成

以下を実行。

>ruby extconf.rb

Makefileが生成される。


■Makefileの修正

Makefileの42行目くらい

CFLAGS = -MD -Zi -O2b2xg- -G6

という行の-MDを-MTに変更する。

これを変更しないとVisualStudioが無い環境で実行できないバイナリになってしまう。


■rubyのヘッダの変更

ファイル「C:\ruby\lib\ruby\1.8\i386-mswin32\config.h」を変更。

一番最初の行にVCのバージョンチェックの部分があるので変更する。

デフォルトだと_MSC_VER==1200(=VisualC++6.0)以外はエラーになる。

#if~#endifまでを削除するか条件式を「_MSC_VER < 1200」とかに変更する。


■コマンドプロンプトの準備

コマンドプロンプトを開いて以下を実行。

>C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat

これをしないとCL.exeなどが利用できない模様。

もしパスが通っていないならばCL.exeにもパスを通しておく。

例:

>path=%path%;C:\Program Files\Microsoft Visual Studio 8\VC\bin


■Makeを実行

上で準備したコマンドプロンプトの窓からnmakeを実行。

>nmake

動かない場合は1個前の「コマンドプロンプトの準備」のところもう一度チェック。

うまくいけば「erbscan.so」が出来上がる。

なんか間違えていてMakeしなおす場合はnmake cleanで一度ファイルを消す。


■インストール

installを実行。

>nmake install

これでインストールされる。

rubyのフォルダごとサーバマシンに持っていくか、実際にはerbscan.soとerb_fast.rbが入るだけなのでバージョンが一致していればこの2つをrubyのフォルダにコピーすれば良い。

コピー場所はそれぞれ、

.\ruby\lib\site_ruby\1.8\i386-msvcrt

.\ruby\lib\site_ruby\1.8


これで動いていると思うのだが、効果のほどは不明。

若干体感速度が上がったような・・・?


最近のコメント

364,000 at 2008.06.14
Copyright (c) Suika KNOnline.NET