0
我正在學習如何編寫Ruby C擴展,我已經超越了最簡單的例子。我試圖用套接字來實現某些功能,所以我試圖創建一個擴展名,它將定義一個rb_cIPSocket
下的類。是否有可能在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")
等。我在這裏錯過了什麼?爲什麼我不能包含該頭文件? 我使用的是RVM和Ruby 1.9.3-p448的OSX。 謝謝。
謝謝你的指針。這對我來說很有用:'ipSocketClass = rb_const_get(rb_cObject,rb_intern(「IPSocket」));' – radekg
這裏有更高級的資源:http://clalance.blogspot.be/2011/01/writing-ruby-extensions-in -c-part-3.html – radekg
這裏是最好的資源,所以它看起來:http://media.pragprog.com/titles/ruby3/ext_ruby.pdf – radekg