Mkmf isn't finding my shared object to link with

I have an extension I wrote which is actually just a wrapper for a C
api.
The directory structure looks like this.
.
|-- Makefile
|-- extconf.rb
|-- extconf.rb~
|-- libmdc.so
|-- mdc.h
|-- metadata-backup.c~
|-- metadata.c
|-- metadata.c~
|-- metadata.o
|-- metadata.so
`-- mkmf.log

When I generate the makefile, it doesn’t find libmdc.so. How can I fix
this?

require ‘mkmf’

have_header(“mdc.h”)
have_library(‘libmdc.so’,‘MDOpenConnection’)

dir_config(‘metadata’)
create_makefile(‘metadata’)

When I run it, I get

checking for mdc.h… yes
checking for MDOpenConnection() in -llibmdc.so… no
creating Makefile

On Sunday 06 July 2008, Tristin D. wrote:

|-- metadata.c

creating Makefile
I’m not sure, but I think you shouldn’t put the lib prefix in the call
to
have_library:

have_library(‘mdc’, ‘MDOpenConnection’)

I hope this helps

Stefano

Thanks Stefano, that worked. Now I get this though.

LoadError: libmdc.so: cannot open shared object file: No such file or
directory - ./metadata.so
from ./metadata.so
from (irb):1

I tried setting LD_LIBRARY_PATH to include the directory, but that
didn’t
work.

On Sun, Jul 6, 2008 at 12:12 PM, Stefano C.
[email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs