前提・実現したいこと
以前まで回っていたrubyのプログラムがエラーが出るようになってしまいました。
発生している問題・エラーメッセージ
C:/Ruby25-x64/dpi.rb:32:in `eval': 193:%1は有効な Win32 アプリケーションではありません。 - C:/Ruby25-x64/lib/ruby/2.5.0/arrayExt.so (LoadError)
該当のソースコード
dpiIncludePath = CONFIG['libdir'] + "/ruby/" + CONFIG['ruby_version'] + "/dpi"
Dir[dpiIncludePath + "/*.rb"].each do |x|
eval('require "#{x}"')
呼び出したrbファイル内コード
require 'arrayExt'
rubyを1.6.0から2.5.0にアップデート後、このようなエラーが起こってしまいました。
いろいろ調べてみたところ、rubyはバージョンをアップしていくと外部のライブラリとの互換性がなくなることがあるみたいですが、よくわかりませんでした。
arrayExt.so に関しては自分で作成したファイルではなく、中身の詳細についてはわかりません。(おそらく配列を何かしら変換するような中身です)
バージョン2.5.0のまま*.soファイルを扱う方法はありますか。このsoファイルがバージョン1.6.0を対象とした互換性しかもってい場合は不可能なのでしょうか。
その場合、soファイルを自作できないのでバージョンを戻さなければいけないでしょうか。
1.6.0と2.5.0を使い分けるなど、何か解決方法を教えてください。
わかりにくい質問ですみませんが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/23 01:04