是否可以在ruby C扩展中使用rb_cIPSocket

时间:2013-07-19 19:52:52

标签: ruby ruby-c-extension

我正在学习如何编写Ruby C扩展,我已经过了最简单的例子。我试图用套接字实现某些功能,所以我试图创建一个扩展,它将在rb_cIPSocket下定义一个类。

在我的C文件顶部,我有:

#include "rubysocket.h"

我收到了:

...s.c:3:31: error: rubysocket.h: No such file or directory

最可能是这种情况。但是,我尝试了所有可能的路径:

#include "rubysocket.h"
#include "socket/rubysocket.h"
#include "ext/socket/rubysocket.h"
#include <rubysocket.h>
#include <socket/rubysocket.h>
#include <ext/socket/rubysocket.h>

这是我的extconf.rb

require 'mkmf'
dir_config("my_ext")
have_library("c", "main")
create_makefile("my_ext")

等等。我在这里真正想念的是什么?为什么我不能包含该头文件? 我使用OSX与RVM和Ruby 1.9.3-p448。 谢谢。

1 个答案:

答案 0 :(得分:3)

ruby​​socket.h在哪里?如果它是ruby源代码的核心,那么对于ruby的使用来说它是“私有的”,但是你可以把它看起来像......

  

VALUE ipSocketClass = rb_const_get(“IPSocket”);

等。 GL!