萎草の茂るブログ

鵺帝国の飛び地。暇人も多忙の方も。

[Ruby] Windows 上の Ruby Gems で嵌まった点 まとめ

2014年06月15日 | Computer
※ 以下の操作によって不利益を被っても筆者は一切の責任は負いかねます。
※ 記事中に現れるパス名は筆者の環境におけるものです。ご自分の環境に合わせて適宜読み替えてください。

Windows 上で Ruby Gems を実行したところ、上手く動かなかった。
そんな嵌まった点のまとめ。


1. nmake
次のようなエラーが出た場合。
'nmake' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

Visual Studio をインストールし、Visual Studio にパスを通してください。
Visual Studio の「開発者コマンド プロンプト」上で gem を実行するとよいでしょう。
〔参考: NekoGrammerのホームページ(NekoGrammerさん)〕


2. Ruby のパス名
次のようなエラーが出た場合。
'C:\Program\' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
NMAKE : fatal error U1077: 'C:\Program\' : リターン コード '0x1'
Stop.

何故か Gems は空白文字の入ったパスを正しく認識できないようです。
環境変数の Ruby のパスが C:\Program Files (x86)\Ruby-2.0.0\bin; のようになっているのを、C:\Progra~2\Ruby-2.0.0\bin; のようにしてください。
(空白を含まない 8.3 形式のファイル名(MS-DOS ファイル名)にする)


3. _MSC_VER の値(バージョン)
次のようなエラーが出た場合。
C:\PROGRA~2\Ruby-2.0.0\include\ruby-2.0.0\i386-mswin32_100\ruby/config.h(4) : fatal error C1189: #error : MSC version unmatch: _MSC_VER: 1600 is expected.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64\cl.EXE"' : リターン コード '0x2'
Stop.

何故か Ruby はコンパイラのバージョンが丁度 1600 であることを期待しているようです(この数値は Ruby のバージョンによる)。
より新しいコンパイラで実行しようとするとエラーが起きるので、
C:\PROGRA~2\Ruby-2.0.0\include\ruby-2.0.0\i386-mswin32_100\ruby\config.h 中に
#if _MSC_VER != 1600
とあるのを
#if _MSC_VER < 1600
のように書き換えてください。
〔参考: kyashiro's blog

4. 「添字が負の数です」
次のようなエラーが出た場合。
c:\program files (x86)\ruby-2.0.0\include\ruby-2.0.0\ruby/ruby.h(125) : error C2118: 添字が負の数です。
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64\cl.EXE"' : リターン コード '0x2'
Stop.

64-bit の Ruby に対して 32-bit のコンパイラを使っている場合や、その逆の場合に起こるようです。
正しいコンパイラが使われていることを確認してください。
〔参考: Ruby メーリングリスト
ジャンル:
ウェブログ
コメント   トラックバック (1)   この記事についてブログを書く
« Ubuntu 14.04 の設定(個人的... | トップ | アフター5 »
最近の画像もっと見る

コメントを投稿

Computer」カテゴリの最新記事

関連するみんなの記事

トラックバック

isabel marant bottes vert (Moncler a buon mercato Pop Star Lungo Fur Hood Belt Donne Caff Piumini Moncler Bambino Saldi Many different species of ticks ...)
many different species of ticks can be involved The Head Part, <a href="http://www.monclerit-it.com/moncler-a-buon-mercato-pop-star-lungo-fur-hood-belt-donne-caff-piumini-moncler-bambino-saldi-p-362.html" target="_blank">Moncler a buon mercato Pop S...