Как запустить мое приложение ruby, используя библиотеку расширений ruby (на c), в Windows?
-
03-07-2019 - |
Вопрос
Я был бы благодарен за любую помощь в этом:Я хочу написать расширение к моей библиотеке c.Я создал файл zmq.cpp который использует библиотеку libzmq (написанную на C ++).
Я создал makefile с помощью ruby extconf.rb, затем запускаю nmake.Все прошло прекрасно.Сгенерированные файлы Nmake
librbzmq-i386-mswin32.def
librbzmq-i386-mswin32.lib
librbzmq-i386-mswin32.exp
librbzmq.so librbzmq.so.manifest
Все это было сделано в Windows XP.
Затем у меня есть тестовая программа, которая в моей первой строке имеет:
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 и смог запустить тестовое приложение, используя аналогичную команду, как здесь (отличались только пути).
Спасибо
Решение
Исправляю мой предыдущий ответ - похоже, что путь, который вы указываете, используя "-I", неверен.Он должен указывать на каталог, в котором можно найти librbzmq.so.В качестве альтернативы вы можете установить библиотеку с помощью:
nmake install
или используйте RUBYLIB для настройки пути поиска:
set RUBYLIB="C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq"
с уважением
грант