R
Rudi Cilibrasi
Hi everybody,
I am the main developer of CompLearn, an open-source machine learning library
for scientific researchers. I have written a Ruby binding for CompLearn
called complearn-ruby. It has worked fine in the past. But it has a problem
ever since I converted the base library (libcomplearn) to use OpenMP for
multicore processor support. If I just try to use the simplest approach that
has worked in the past in my extconf.rb, I get the following problem when I
try to require the C-extension Ruby binding complearn4r.so and use the
multicore part of the system:
ruby: symbol lookup error: /usr/lib/libcomplearn.so.1: undefined symbol: GOMP_pa
rallel_start
To try to fix this error,
I adjusted the extconf.rb to include this line:
have_library('gomp', 'main')
And rebuilding works but running a simple test program (just trying to require
complearn) fails in a different way than before:
/home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/complearn4r.s
o: libgomp.so.1: shared object cannot be dlopen()ed - /home/cilibrar/rlc/project
s/complearn/complearn-ruby/ext/complearn/complearn4r.so (LoadError)
from /home/cilibrar/rlc/projects/complearn/complearn-ruby/lib/complearn.
rb:2
from tests/t2.rb:1:in `require'
from tests/t2.rb:1
I don't know what else to try and wonder if anybody else can offer a clue?
I have tried for a long time experimenting with CFLAGS, CPPFLAGS, LDFLAGS,
and -fopenmp among other settings but I still cannot seem to figure out
a solution. I have put the source code for this problem up at
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-1.0.4.tar.gz
and
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-ruby-1.0.4.tar.gz
I would appreciate greatly any help anybody can offer in this problem. Thank
you for your attention,
Rudi
I am the main developer of CompLearn, an open-source machine learning library
for scientific researchers. I have written a Ruby binding for CompLearn
called complearn-ruby. It has worked fine in the past. But it has a problem
ever since I converted the base library (libcomplearn) to use OpenMP for
multicore processor support. If I just try to use the simplest approach that
has worked in the past in my extconf.rb, I get the following problem when I
try to require the C-extension Ruby binding complearn4r.so and use the
multicore part of the system:
ruby: symbol lookup error: /usr/lib/libcomplearn.so.1: undefined symbol: GOMP_pa
rallel_start
To try to fix this error,
I adjusted the extconf.rb to include this line:
have_library('gomp', 'main')
And rebuilding works but running a simple test program (just trying to require
complearn) fails in a different way than before:
/home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/complearn4r.s
o: libgomp.so.1: shared object cannot be dlopen()ed - /home/cilibrar/rlc/project
s/complearn/complearn-ruby/ext/complearn/complearn4r.so (LoadError)
from /home/cilibrar/rlc/projects/complearn/complearn-ruby/lib/complearn.
rb:2
from tests/t2.rb:1:in `require'
from tests/t2.rb:1
I don't know what else to try and wonder if anybody else can offer a clue?
I have tried for a long time experimenting with CFLAGS, CPPFLAGS, LDFLAGS,
and -fopenmp among other settings but I still cannot seem to figure out
a solution. I have put the source code for this problem up at
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-1.0.4.tar.gz
and
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-ruby-1.0.4.tar.gz
I would appreciate greatly any help anybody can offer in this problem. Thank
you for your attention,
Rudi