Haley Thrapp wrote:
> I am trying to use RRDtool through ruby.  I have installed rrdtool and
> it appears to be working(I can run the sample scripts).  I downloaded
> the RubyRRDtool gem and tried to install it.  The install appears to
> work without errors.  I then tried running the example scripts for the
> rrdtool gem and just requiring the gem in irb.  I get the same error for
> both, shown below (1).  I then tried building the gem using the
> instructions in the README.  I did a 'ruby extconf.rb', 'make', and
> 'make install'.  Make produces the warnings below (2), but no errors.
> The install also seems to succeed, but I get the same issue as the
> straight gem install.  From my investigation so far, it appears that
> there are a number of rrd commands that are not defined in RRDtool.so.
> Is it possible the gem build is not linking against rrd correctly, and
> if so, how might I fix this?  I have attached the Makefile that is
> produced from the extconf.rb.
> 
> 
> 
> 
> (1)
> irb(main):001:0> require "RRDtool"
> LoadError:
> /usr/lib/ruby/gems/1.8/gems/RubyRRDtool-0.6.0/test/RRDtool.so: undefined
> symbol: rrd_resize -
> /usr/lib/ruby/gems/1.8/gems/RubyRRDtool-0.6.0/test/RRDtool.so
>         from
> /usr/lib/ruby/gems/1.8/gems/RubyRRDtool-0.6.0/test/RRDtool.so
>         from
> /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
>         from (irb):1
> 
> 
> 
> (2)
> i386-redhat-linux-gcc -I. -I. -I/usr/lib/ruby/1.8/i386-linux -I.  -fPIC
> -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386
> -mtune=generic -fasynchronous-unwind-tables -Wall  -fPIC  -c
> rubyrrdtool.c
> rubyrrdtool.c: In function \u2018rrdtool_create\u2019:
> rubyrrdtool.c:317: warning: passing argument 5 of
> \u2018rrd_create_r\u2019 from incompatible pointer type
> rubyrrdtool.c: In function \u2018rrdtool_update\u2019:
> rubyrrdtool.c:590: warning: passing argument 4 of
> \u2018rrd_update_r\u2019 from incompatible pointer type
> i386-redhat-linux-gcc -shared  -L"/usr/lib" -o RRDtool.so rubyrrdtool.o
> -lruby -lart_lgpl_2 -lfreetype -lpng -lz  -lpthread -ldl -lcrypt -lm
> -lc
> 
> Attachments:
> http://www.ruby-forum.com/attachment/965/Makefile
> 

The "-lrrd" seems to be missing from your Makefile (and hence from the 
link step above).

Mine looks like this:

LIBS =  -lrrd -lart_lgpl_2 -lfreetype -lpng -lz  -lpthread -ldl -lcrypt 
-lm   -lc

Can you show your mkmf.log?

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407