I tried to call rb_eval_string(), so I wrote simple C code.

#include "/home/xopht/lib/1.8/i686-linux/ruby.h"

int main()
{
    rb_eval_string( "puts" );
    return 0;
}

I compiled it and get bellow result.

[xopht@odin ruby]$ g++ -o test test.cc -lruby-static -L/home/xopht/lib/
/home/xopht/lib//libruby-static.a(string.o)(.text+0x319a): In function
`rb_str_crypt':
/home/xopht/ruby/ruby-1.8.4/string.c:4360: undefined reference to
`crypt'
/home/xopht/lib//libruby-static.a(dln.o)(.text+0x9f): In function
`dln_load':
/home/xopht/ruby/ruby-1.8.4/dln.c:1351: undefined reference to `dlopen'
/home/xopht/lib//libruby-static.a(dln.o)(.text+0xb6):/home/xopht/ruby/ruby-1.8.4/dln.c:1356:
undefined reference to `dlsym'
/home/xopht/lib//libruby-static.a(dln.o)(.text+0x12b):/home/xopht/ruby/ruby-1.8.4/dln.c:1359:
undefined reference to `dlclose'
/home/xopht/lib//libruby-static.a(dln.o)(.text+0x5): In function
`dln_strerror':
/home/xopht/ruby/ruby-1.8.4/dln.c:1193: undefined reference to
`dlerror'
collect2: ld returned 1 exit status
[xopht@odin ruby]$ 

what's wrong?