HOME  >  2013/12

Windows 7 に Ruby 2.0 x64 を その3 ~RMagick が入らない問題と対策2~

2014/12/6 追記
RMagick 2.13.4 にて下記の内容は取り込まれています。
2.13.4 をインストールできない場合は、下記の内容とは別の問題ということになります。
前回の対応方法だとあまりにめんどうなので、
x64 対応した RMagick のソースを GitHub 上に用意しました。
注意:私がテキトーに対応した非公式版です。自己責任でご使用ください。

インストール事前準備

以下 2 つが必要です。
  1. specific_install
  2. GitHub から gem をインストールするのに必要なので、用意しておいてください。
    gem install specific_install
    
  3. RMagick に必要なものたち
  4. RMagick を Windows 7 にインストールする方法の手順 1, 3 を実施してください。
    手順 2 の CPATH, LIBRARY_PATH の設定は不要です。
    (いちいち設定するのがめんどうなので、
    ImageMagick へのパスが通っていれば不要になるよう修正してあります。)

インストール方法

コマンド一発です。
gem specific_install -l 'git://github.com/u338steven/rmagick.git'
以上です。

注意点

以下の定数を Ruby ソース内で使用している場合、修正する必要があります。
MaxRGB -> QuantumRange に修正
QuantumDepth -> MAGICKCORE_QUANTUM_DEPTH に修正
※非推奨の定数となったため、使用できなくなりました。
2014/02/23 追記
ちょっと修正して、この定数は一応使えるけど非推奨ですよ
というメッセージ出すようにしました。

# 非推奨の関数、定数を使用しないようソースを書きかえてあるので、
# ImageMagick のバージョンがあがっても、しばらくは大丈夫のはず!
スポンサーサイト



2013/12/27 | カテゴリ:Ruby | トラックバック(0) | コメント(0)

Windows 7 に Ruby 2.0 x64 を その2 ~RMagick が入らない問題と対策~

2014/12/6 追記
RMagick 2.13.4 にて下記の内容は取り込まれています。
2.13.4 をインストールできない場合は、下記の内容とは別の問題ということになります。
この前にひき続き Ruby 2.0 x64 ネタ。
本日は、RMagick。
# 今回はかなり無理矢理で手順がややこしいので、
# 後日 GitHub あたりで、それなりに対応したものを公開するかも……。
2013/12/27 追記
修正したソースを GitHub 上に用意しました。
詳細は→Windows 7 に Ruby 2.0 x64 を その3 ~RMagick が入らない問題と対策2~
手順がだいぶ簡単になっています。

インストール時の 2 つの問題

Ruby 2.0 x64 版で RMagick をインストールするには 2 つの問題があります。
  1. ImageMagick の X11.lib が読み込めない (x64 固有の問題)
  2. ImageMagick の deprecated (非推奨)となった関数、定数が読めない(x86 でも起こる共通の問題)
後者のせいで、ImageMagick の最新版を使用できない状態になっています。
それぞれの問題の対策は以下のとおりです。
  1. X11.lib をリンクさせようとしている箇所を削除!
  2. ImageMagick のソースから deprecated (非推奨)となった関数、定数をひっぱってきてリンクする

前提

[問題 1] ImageMagick の X11.lib が読み込めない

まず、何も考えずに gem install rmagick する。 すると以下のようなエラー。
ERROR:  Error installing rmagick:
        ERROR: Failed to build gem native extension.

    C:/ruby/bin/ruby.exe extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.
詳細を確認するために mkmf.log を見ると、cannot find -lX11 というエラーメッセージがひろえます。
c:/ruby/devkit/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lX11
collect2.exe: error: ld returned 1 exit status
公式で配布されている ImageMagick x64 のバイナリですが、X11.lib のみ何故か x86 用です。
なので x64 環境だと、x64 バイナリじゃねーから X11.lib は読めねーよ!と怒られてしまいます。

そもそも RMagick のソース見ても、X11.lib の内容を使用している形跡がないので、
リンクする必要ないです。(なんでリンクしとるの??過去バージョンでは必須だったのかな)
なので、サクッと削除!

[対策 1] X11.lib をリンクさせようとしている箇所を削除!

  $LOCAL_LIBS = '-lCORE_RL_magick_ -lX11' #before
  $LOCAL_LIBS = '-lCORE_RL_magick_'       #after
-lX11 というのを消してあげるだけです。

[問題 2] ImageMagick の deprecated (非推奨)となった関数、定数が読めない

RMagick 2.13.2 は、最新の ImageMagick では非推奨となった関数、定数を使っています。
また ImageMagick 公式サイトで配布されているのバイナリだと、
非推奨の関数、定数は使用できない状態になっている模様。
なので、使用するためには以下 3 つの対策のどれかをする必要があります。
  • 非推奨の関数、定数を使用できる状態にして ImageMagick のライブラリを自前でコンパイル
  • RMagick で native build する時、非推奨の関数、定数が定義されたソースを一緒にコンパイル
  • 非推奨の関数、定数を使用しないよう書きかえる

1 つめは、MFC が必須なので今回はパス。
(Windows Driver Kit をインストールすれば、MFC は用意できますがめんどう。)
2 つめは、ImageMagick のソースから非推奨の関数がまとめられているソースをひっこぬいて
RMagick のビルド時にコンパイル、リンクしてあげる方法で、今回はこれを採用。
# 3 つめは、これがあるべき姿なので後日できたらいいな。

[対策 2] ImageMagick のソースから deprecated (非推奨)となった関数、
定数をひっぱってきてリンクする

ソースの入手先。 ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/
ImageMagick からひっこぬくソース。
  • magick\deprecate.h
  • magick\deprecate.c
上の 2 ファイルを {ruby インストール先}\lib\ruby\gems\2.0.0\gems\rmagick-2.13.2\ext\RMagick\ にコピーしてあげてください。 そしてその中にある 3 ファイル編集します。
#undef MagickExport
#define MagickExport
#undef MAGICKCORE_EXCLUDE_DEPRECATED
#undef _MAGICKCORE_DEPRECATE_H
#include "deprecate.h"
#undef MAGICKCORE_EXCLUDE_DEPRECATED
#undef _MAGICKCORE_DEPRECATE_H
#include "deprecate.h"
その後はビルド、インストールするだけです。
DEVELOPMENT KIT のインストールディレクトリにある msys.bat を実行してください。
コマンドプロンプトが出てきますので、以下のコマンドを入力してビルド、インストールしてください。
cd {ruby インストール先}/lib/ruby/gems/2.0.0/gems/rmagick-2.13.2/
ruby setup.rb
ruby setup.rb install
以上でインストール完了です。
ただし、このままだと gem list --local をしても、RMagick がでてきません。
気になる方は、
{ruby インストール先}\lib\ruby\gems\2.0.0\gems\rmagick-2.13.2\rmagick.gemspec
を下のディレクトリにコピーすれば gem list --local ででてきます。
{ruby インストール先}\lib\ruby\gems\2.0.0\specifications\
2013/12/26 | カテゴリ:Ruby | トラックバック(0) | コメント(0)

Windows 7 に Ruby 2.0 x64 を その1 ~Nokogiri が入らない問題と対策~

2015/3/1 追記
この記事の情報は古いので、最新の情報である以下のページを見てください。
Windows で Nokogiri のビルドエラー解決法 再び

ふと思いたって Ruby 2.0 x64版をインストール。
Mechanize 入れようとしたら、依存ライブラリの Nokogiri のインストールでエラー。
せっかくなので、その問題と対策をメモ。
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html
 for help with installing dependencies.
Nokogiri を Windows x64 でインストールするには、以下 2 つを実施する必要があります。
  1. libxml2 を配置する
  2. x64 対応 Nokogiri gem を使用する

libxml2 を配置する

エラーメッセージで、libxml2 が無いぞ!といわれてるので、用意します。
ruby.exe があるディレクトリに windows x64 用バイナリをぶちこみましょう。(もちろん解凍してから)
ftp://ftp.zlatkovic.com/libxml/64bit/
以下 2 ファイルが対象です。(バージョン部分は変わってるかも)
  • libxml2-2.9.1-win32-x86_64.7z
  • libxslt-1.1.28-win32-x86_64.7z

x64 対応 Nokogiri gem を使用する

native build のときにも問題があるらしく、それに対応した gem を発見( beta 版だけど)
Add support for cross compiling x64-mingw32 fat binary gem and add support for native builds on Windows.
リンク先の "here for download. " をクリックすればダウンロードできます。
この gem をインストールすれば Nokogiri が使用できると思います。

すでに beta 版がでてるので、そのうちバージョンアップされて
単純に gem install nokogiri するだけで大丈夫になりそう。

上記の対応した後で発見したのですが、他の解決法もあるみたいです。
WindowsのRuby 2.0でNokogiriを使う
libxml2, libxsltを自前でコンパイルしてます。

そういえばブログタイトルに Ruby って入ってるのに
開設してから 3 ヶ月たって初めて Ruby 関係の記事を書いた……。

2015/3/1 追記
この記事の情報は古いので、最新の情報である以下のページを見てください。
Windows で Nokogiri のビルドエラー解決法 再び
2013/12/23 | カテゴリ:Ruby | トラックバック(1) | コメント(0)

Hit a Hint for Windows 0.5.15.2 公開

個人的に気になっていた不具合の原因がようやくわかったので修正。
ダウンロードはこちらから

Version.0.5.15.2

  • タスクバー操作モードで、連続して同じタスクトレイアイコンをクリックするとタスクバーのコンテキストメニューが表示されてしまうのを修正

いつぞやのパフォーマンス改善のときに、いろいろと綺麗にしたおかげで
改めてソースを見直してみたら不具合の原因はすぐわかった……。
綺麗なソースをこころがけるの大事!

2013/12/20 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)

Hit a Hint for Windows 0.5.14.1 公開

連続 Hit-a-Hint 機能を追加。
使いやすさや操作ミスを考慮した修正。
この前 (2013年12月13日) みつけたよろしくない動きは、
考えてみたら今回の修正とは関係ないので後回し。
ダウンロードはこちらから

連続 Hit-a-Hint

Hint を hit しても終了せず、つづけて別の hint を hit できるようにするモード。
デフォルトのキーバインドは "E" 。
操作がクリックの場合のみ使用可能。
チェックボックスがたくさんあるとき等に便利。


Version.0.5.14.1

  • 連続 Hit-a-Hint 機能の追加
  • モードに応じて実行可能な操作を限定するよう修正
2013/12/17 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)

Hit a Hint for Windows に 連続 Hit-a-hint 機能を

Hit a Hint for Windows に連続 Hit-a-hint 機能を加えようとたくらんでいます。
ためしに実装してみてうまくいったと思ったら、別件でよろしくない動きを発見して悩み中。
そのよろしくない動き関連を忘れないようにめも。

連続 Hit-a-hint について

Hint を hit しても終了せず、つづけて別の hint を hit できるようにするモード。
たとえば、チェックボックスが多くあるウィンドウでチェックしまくりたい場合、便利です。
現状では同じウィンドウの複数の要素を操作したい場合、以下を繰り返す必要があります。
  • Hit-a-hint 開始
  • hint を hit
しかし、連続 Hit-a-hint の場合、一度 Hit-a-hint を開始したら
hint を hit するのを繰り返すだけで OK となります。

よろしくない動き

ListItem 内に子の要素がある場合よろしくない。
たとえば、以下のようなウィンドウ場合、チェックボックス単体を操作できない。
(横に並んだチェックボックス 2 つを一つのリスト要素として認識してしまうため。)
こんなの↓が、
hw_yorosikunai01.jpg
こうなっちゃう↓
hw_yorosikunai02.jpg

めも

リスト要素の場合、子の要素を検索しにいかないようにしてるから、
うまくいってないのかなと思ったら、ちゃんと子の要素を検索しにいってた。
勘違いしてたみたい。
でも、仮にチェックボックスをちゃんと取得できても
クリック位置の設定がうまくいかないとかなりそう。
ねむいのでまた時間あるときに調べよう。。。
2013/12/13 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)

Hit a Hint for Windows 0.4.12.1 公開

ヒント選択時に分かりやすいよう表示の仕方を少し変更しました。 別件の不具合も修正。
ダウンロードはこちらから

Version.0.4.12.1

  • キー入力に応じて該当するヒントのみ表示するよう変更
  • 起動直後にホットキー入力すると、必ずタスクバー操作モードになってしまうのを修正

変更詳細

最初の状態がこんな感じ↓だとすると、
hw_visible01.jpg
たとえば "A" を入力すると "A" から始まるヒント以外が消えるように変更しました。
hw_visible02.jpg
2013/12/10 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)

Migemize Windows 0.5.19.5 公開

よろしくない動作を発見したので修正
IME との兼ね合いで検索できないときがありました。
ダウンロードはこちらから

Version.0.5.19.5

  • 検索対象ウィンドウ上で IME がアクティブだと検索できなかったのを修正
2013/12/08 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)

Migemize Windows 0.5.18.4 公開

パフォーマンスの改善をちまちまと。
今回の修正は、エクスプローラ上で使用した時のパフォーマンス改善なので、
エクスプローラ上で使用していない方は更新しなくても特に問題ありません。
ダウンロードはこちらから

Version.0.5.18.4

  • エクスプローラ上での使用で、次の候補、前の候補を表示する処理のパフォーマンスを改善
  • 設定の一覧を日本語化
2013/12/05 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)

Hit a Hint for Windows 0.3.10.2 公開

設定ウィンドウを追加して、 エディタを使わずカスタマイズできるようになりました。
ダウンロードはこちらから

設定ウィンドウの表示方法

タスクトレイアイコンを右クリック→「設定」をクリック

旧バージョンを使用していた方へ

旧バージョンでフォント、フォントサイズを変更していた方は、
お手数ですが設定ウィンドウで再設定してください。それ以外の設定はそのまま引き継ぎできます。

設定ウィンドウのスクリーンショット

hw_SettingForm.jpg

Version.0.3.10.2

  • 設定ファイル編集ウィンドウ追加
2013/12/01 | カテゴリ:ソフトウェア開発 | トラックバック(0) | コメント(0)
外部リンク

カンパのお願い
公開しているソフトウェアはフリーウェアなので無料でご利用いただけます。 気に入ってくださった方は、Amazon でお買い物をする際に下記のリンクを経由して頂ければ励みになります。

検索BOX・タグ一覧