Wie mein Rubin Anwendung mit Ruby-Erweiterungsbibliothek (in c), in den Fenstern laufen?
-
03-07-2019 - |
Frage
würde ich für jede Hilfe zu diesem Thema dankbar sein: Ich möchte eine Erweiterung meiner C-Bibliothek schreiben. Ich erstellte Datei zmq.cpp die Bibliothek libzmq (geschrieben in C ++) verwendet.
Ich habe Make-Datei Rubin extconf.rb verwenden, dann laufe ich Nmake. Es ging alles gut. Nmake generierten Dateien
librbzmq-i386-mswin32.def
librbzmq-i386-mswin32.lib
librbzmq-i386-mswin32.exp
librbzmq.so librbzmq.so.manifest
Das alles wurde in Windows XP durchgeführt.
Dann habe ich ein Testprogramm, das in meiner ersten Zeile hat:
require 'librbzmq'
Wenn ich versuche, mein Testprogramm laufen mit
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
ich
rb-remote_lat.rb:1:in `require':no such file to load -- librbzmq (LoadError) from ./rb_remote_lat.rb:1:in `<main>'
Die Dateispeicherorte sind richtig, ich habe es.
Haben Sie eine Ahnung, wie es läuft?
. Hinweis: Ich tat dies alles in ubuntu und es funktionierte gut - ich Make-Datei erstellt, und konnte die Testanwendung mit ähnlichem Befehl wie hier (nur die Wege waren verschieden)
laufenDanke
Lösung
Die Korrektur meiner früheren Antwort - es sieht aus wie der Pfad, den Sie liefern mit „-I“ ist falsch. Es sollte auf das Verzeichnis zeigen, wo librbzmq.so gefunden werden kann. Alternativ können Sie die Bibliothek installieren mit:
nmake install
oder RUBYLIB Setup-Suchpfad verwenden:
set RUBYLIB="C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq"
Bezug
Zuschuss