我正在学习如何编写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。 谢谢。
答案 0 :(得分:3)
rubysocket.h在哪里?如果它是ruby源代码的核心,那么对于ruby的使用来说它是“私有的”,但是你可以把它看起来像......
VALUE ipSocketClass = rb_const_get(“IPSocket”);
等。 GL!