Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Building BDB for windows

Reply
Thread Tools

Building BDB for windows

 
 
derek.hans@gmail.com
Guest
Posts: n/a
 
      04-27-2006
I'm trying to get support for Berkely DB under windows, but I have not
been able to produce a functional build of the BDB library.

Compiling with Visual Studio produces a dll, however ruby complains
that it can't find the "Init_bdb" method when trying to use the dll.
The Init_bdb function deffinitly exists in the source code.

Compiling under linux produces working linux binaries; however, when I
tried cross-compiling using mingw (as described in
http://eigenclass.org/hiki.rb?cross+compiling+rcovrt), I wasn't able to
successfully link against the berkeley db dll.

Furthermore, I tried using the berkeley db dll directly using Ruby/DL,
again with no success. Code in this style:

require 'dl/import'
module BDB
extend DL::Importable
dlload "libdb44.dll"
extern "int db_create(DB **dbp, DB_ENV *dbenv, u_int32_t flags)"
end

fails because db_create cannot be found, while something like this:

require 'dl'
bdb = DL.dlopen('libdb44.dll')
db_create = bdb['db_create', 'IPPI']
db = nil
db_create.call(db, nil, 0)

fails because the dll somehow makes ruby "exit unexpectedly" during
db_create.call.

I've run out of ideas how to make it work. Has anyone been successful?

 
Reply With Quote
 
 
 
 
derek.hans@gmail.com
Guest
Posts: n/a
 
      04-27-2006
Following the SWIG instructions, I added NT=1 and "IMPORT" to the
Preprocessor definitions and set the entry point to Init_bdb. I also
set the multi-threaded DLL option /MD because /ML does not play nice
with specifying the entry point.

I now get the following error:

../bdb.dll: 127: The specified procedure could not be found. -
Init_bdb (LoadEr
ror)
../bdb.dll from
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:2
1:in `require'
from ./clean.rb:1
from
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `re
quire'
from basic.rb:2
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29: [BUG]
Segmentation
fault
ruby 1.8.4 (2005-12-24) [i386-mswin32]


This application has requested the Runtime to terminate it in an
unusual way.
Please contact the application's support team for more information.


The last two lines of the message correspond to the error I am getting
when trying to access the berkeley dll using Ruby/DL.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Berkeley DB BDB Install on Windows david Ruby 13 03-07-2010 07:11 PM
ANN: BDB++ 1.1 release Ahn Ki-yung C++ 0 04-05-2005 07:31 AM
ANN: BDB++ 1.0 release Ahn Ki-yung C++ 0 01-26-2005 09:31 AM
ANN: BDB++ 0.99b released Ahn Ki-yung C++ 1 05-06-2004 07:35 PM
Installer for BDB 4.1.25/BDBXML 1.1.0 Emiliano Heyns Python 2 10-16-2003 04:06 AM



Advertisments