2

私はこれについての助けに感謝します:私は私のcライブラリに拡張機能を書きたいです。ライブラリlibzmq(C ++で記述)を使用するファイルzmq.cppを作成しました。

ruby extconf.rbを使用してmakefileを作成してから、nmakeを実行します。それはすべてうまくいった。Nmakeで生成されたファイル

librbzmq-i386-mswin32.def
librbzmq-i386-mswin32.lib
librbzmq-i386-mswin32.exp
librbzmq.so librbzmq.so.manifest

これはすべてWindowsXPで行われました。

次に、テストプログラムがあります。最初の行には次のようなものがあります。

require 'librbzmq'

を使用してテストプログラムを実行しようとすると

ruby -I"C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq\librbzmq-i386-mswin32.lib" -I"C:\Documents and Settings\Kustarova\wcopy\trunk\windows\Debug\libzmq.lib" ./rb_remote_lat.rb

私は得る

rb-remote_lat.rb:1:in `require':no such file to load -- librbzmq (LoadError) from ./rb_remote_lat.rb:1:in `<main>'

ファイルの場所が正しいので、確認しました。

あなたはそれを実行する方法を知っていますか?

注:これはすべてubuntuで行い、正常に機能しました。makefileを作成し、ここと同様のコマンドを使用してテストアプリケーションを実行できました(パスのみが異なります)。

ありがとう

4

1 に答える 1

1

以前の回答を修正します。「-I」を使用して指定したパスが間違っているようです。librbzmq.soが見つかるディレクトリを指している必要があります。または、次を使用してライブラリをインストールできます。

nmake install

または、RUBYLIBを使用して検索パスを設定します。

set RUBYLIB="C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq"

よろしく

許す

于 2009-05-04T10:39:05.573 に答える