# Mkmf isn't finding my shared object to link with

**URL:** <https://www.ruby-forum.com/t/mkmf-isnt-finding-my-shared-object-to-link-with/142319>\
**Category:** Ruby\
**Created:** [July 6, 2008, 7:00pm UTC](https://www.ruby-forum.com/t/mkmf-isnt-finding-my-shared-object-to-link-with/142319 "2008-07-06T19:00:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tristincolby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@tristincolby](https://www.ruby-forum.com/u/tristincolby)\
**Post date:** [July 6, 2008, 7:00pm UTC](https://www.ruby-forum.com/t/mkmf-isnt-finding-my-shared-object-to-link-with/142319/1 "2008-07-06T19:00:57Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tristincolby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@tristincolby](https://www.ruby-forum.com/u/tristincolby)\
**Post date:** [July 6, 2008, 7:16pm UTC](https://www.ruby-forum.com/t/mkmf-isnt-finding-my-shared-object-to-link-with/142319/2 "2008-07-06T19:16:11Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tristincolby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@tristincolby](https://www.ruby-forum.com/u/tristincolby)\
**Post date:** [July 6, 2008, 7:30pm UTC](https://www.ruby-forum.com/t/mkmf-isnt-finding-my-shared-object-to-link-with/142319/3 "2008-07-06T19:30:50Z")

</div>

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.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
