From: Larrytheliquid Date: 2007-03-28T01:50:16+09:00 Subject: Re: SWIG toy example problem ------=_Part_13877_12579778.1175014210070 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Jano, Good call on checking for rb_define_const... it wasn't there. I eventually found out that the version I was using was 1.3.29, which did not seem to work. After using 1.3.31 everything worked well. Thanks. On 3/26/07, Jano Svitok wrote: > > On 3/24/07, Larrytheliquid wrote: > > I'm having a bit of trouble trying to use SWIG to wrap a simple C++ > header > > file, as follows: > > > > 'MyTest.h' > > ---------- > > #define SUCCESS 1 > > ---------- > > > > 'myTest.i' > > ---------- > > %include MyTest.h > > > > %module myTest > > %{ > > #include "MyTest.h" > > %} > > --------- > > > > swig -c++ -ruby myTest.i > > > > g++ -c myTest_wrap.cxx -I/usr/lib/ruby/1.8/i386-cygwin > > > > g++ -shared myTest_wrap.o -lruby -o myTest.so > > > > $ irb > > irb(main):001:0> require 'myTest' > > => true > > irb(main):002:0> MyTest::SUCCESS > > NameError: uninitialized constant MyTest::SUCCESS > > from (irb):3 > > from :0 > > irb(main):004:0> MyTest.constants > > => [] > > irb(main):005:0> > > > > Hi, > > somehow works for me. To check, have a look at the end of the > generated file - there should be a line saying > rb_define_const(mMyTest,"SUCCESS", INT2NUM(1)); > > SWIG processor by default ignores #include (to enable them use > --includeall) but this is not your case, as you used %include instead. > > I'm using SWIG 1.3.27, as the newer ones converted ruby support to > unified templates, and I couldn't get our hacks to work with them yet. > > Jano > > -- Respectfully, Larry Diehl www.larrytheliquid.com ------=_Part_13877_12579778.1175014210070--