From: Jano Svitok Date: 2007-03-26T16:45:51+09:00 Subject: Re: SWIG toy example problem 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