Comment exécuter mon application ruby ??à l'aide de la bibliothèque d'extension ruby ??(en c), sous Windows?
-
03-07-2019 - |
Question
Je serais reconnaissant pour toute aide à ce sujet: Je veux écrire une extension de ma bibliothèque c. J'ai créé le fichier zmq.cpp qui utilise la bibliothèque libzmq (écrite en C ++).
J'ai créé un fichier makefile avec ruby ??extconf.rb, puis je lance nmake. Tout s'est bien passé. Nmake fichiers générés
librbzmq-i386-mswin32.def
librbzmq-i386-mswin32.lib
librbzmq-i386-mswin32.exp
librbzmq.so librbzmq.so.manifest
Tout cela a été fait sous Windows XP.
Ensuite, j'ai un programme de test qui, dans ma première ligne, contient:
require 'librbzmq'
Lorsque j'essaie d'exécuter mon programme de test à l'aide de
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
je reçois
rb-remote_lat.rb:1:in `require':no such file to load -- librbzmq (LoadError) from ./rb_remote_lat.rb:1:in `<main>'
Les emplacements des fichiers sont corrects, je les ai vérifiés.
Avez-vous une idée de la marche à suivre?
Remarque: j'ai fait tout cela sous ubuntu et tout a bien fonctionné. J'ai créé un fichier makefile et j'ai pu exécuter l'application de test à l'aide d'une commande similaire à celle décrite ici (seuls les chemins étaient différents).
Merci
La solution
Correction de ma réponse précédente - le chemin que vous indiquez à l'aide de " -I " est faux. Il devrait pointer vers le répertoire où librbzmq.so peut être trouvé. Sinon, vous pouvez installer la bibliothèque en utilisant:
nmake install
ou utilisez RUBYLIB pour configurer le chemin de recherche:
set RUBYLIB="C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq"
salutations
accorder