rfuzz의 c 확장을 컴파일하려고합니다. 내가 얻는 오류는루비 1.9.2에서 rfuzz 컴파일 오류가 발생했습니다.
make gcc -I. -I/usr/local/include/ruby-1.9.1/i686-linux -I/usr/local/include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I. -D_FILE_OFFSET_BITS=64 -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -o http11_client.o -c http11_client.c
http11_client.c: In function ‘client_http_field’:
http11_client.c:36:22: error: ‘struct RString’ has no member named ‘ptr’
http11_client.c:36:50: error: ‘struct RString’ has no member named ‘len’
http11_client.c: In function ‘HttpClientParser_execute’:
http11_client.c:218:23: error: ‘struct RString’ has no member named ‘ptr’
http11_client.c:219:23: error: ‘struct RString’ has no member named ‘len’
make: *** [http11_client.o] Error 1
입니다. RString은 Ruby.h에 있습니다. ruby.h의 구조체에는 실제로 그 멤버가 있습니다.
struct RString {
struct RBasic basic;
union {
struct {
long len;
char *ptr;
union {
long capa;
VALUE shared;
} aux;
} heap;
char ary[RSTRING_EMBED_LEN_MAX + 1];
} as;
};
무엇이 누락 되었습니까?
+1 흥미로운 보석을 언급합니다. –