c - 如何在 Windows 中使用 ruby​​ 扩展库(c 语言)运行我的 ruby​​ 应用程序?

标签 c ruby windows ruby-c-extension

如果您对此有任何帮助,我将不胜感激: 我想为我的 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

这一切都是在 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"

问候

授予

关于c - 如何在 Windows 中使用 ruby​​ 扩展库(c 语言)运行我的 ruby​​ 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/819572/

相关文章:

c - C 中的系统命令,如何在 ""之间的字符串内传递指针

sql - 使用带连接的占位符

java - 如何在 NSIS 中获取 Java Swing 应用程序的窗口句柄?

c - 作为后台进程执行c程序

c++ - MFC 工具提示仅在特殊场合出现

链接的宏调用。括号中的参数有不同的处理方式吗?

mysql - 如何将 MySql 库添加到 Code::Blocks/MinGW 中

python - 尝试将 XTea 加密算法从 C 移植到 Python

ruby - main :Object (NoMethodError) though method is defined 的未定义方法

ruby - 如何在 Ruby 中运行此 curl 命令?