[fxruby-users] undefined symbol

Jeroen van der Zijp jeroen at fox-toolkit.org
Sun Dec 5 18:16:52 EST 2004


On Monday 06 December 2004 12:27 pm, you wrote:
> Jeroen van der Zijp wrote:
> > On Sunday 05 December 2004 05:36 pm, Joel VanderWerf wrote:
> > 
> >>Ok, the latest snapshots of ruby have fixed the st.h prototypes so that 
> >>FXRuby-1.2.2 builds. But now I've got a new (actaully, old) problem.
> >>
> >>$ ruby styledtext.rb
> >>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so: 
> >>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so: undefined symbol: 
> >>_ZN8FXWindow10stringTypeE - 
> >>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so (LoadError)
> >>         from styledtext.rb:3
> >>
> >>These are fresh builds of FXRuby-1.2.2 and fox-1.2.11 on linux using gcc 
> >>3.2.2, ruby 1.8.2 (2004-11-18) [i686-linux].
> >>
> >>
> >>I've had this problem before with new versions of Fox/FXRuby, but was 
> >>never able to fix it. Here's some more information:
> >>
> >>$ ldd /usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so
> >>         libFOX-1.2.so.0 => /usr/local/lib/libFOX-1.2.so.0 (0x4066d000)
> >>         ....
> >>
> >>$ nm /usr/local/lib/libFOX-1.2.so.0 | grep stringType
> >>0029eb94 R _ZN2FX8FXWindow10stringTypeE
> >>
> >>
> >>So it appears that maybe symbol mangling is working differently between 
> >>fox and fxruby?
> >>
> >>   _ZN8FXWindow10stringTypeE is what FXRuby is looking for.
> >>
> >>   _ZN2FX8FXWindow10stringTypeE is what Fox has generated.
> >>
> >>I know little about C++ symbols but it looks like the latter symbol is 
> >>in the FX namespace, but the former is not.
> >>
> >>Any suggestions?
> > 
> > 
> > I think Lyle may know more about FXRuby, but to me it looks like a namespace
> > issue. FOX 1.0 didn't support namespaces, but in FOX 1.2, all symbols are
> > in the FX namespace.
> > 
> > Is it possible you have both the 1.0 and the 1.2 headers installed?
> 
> I do have both sets of headers installed. (But why should this be a 
> problem? FXRuby-1.2 should look in fox-1.2, right?)
> 
> Anyway, the 1.0 headers were in /usr/local/include/fox. The 1.2 headers 
> are in /usr/local/include/fox-1.2. They don't appear to be anywhere else.
> 
> I tried renaming /usr/local/include/fox to /usr/local/include/fox-1.0. 
> Then I started from scratch with FXRuby-1.2.2, and rebuilt and installed 
> as usual. Same problem:
> 
> $ ruby table.rb
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so: 
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so: undefined symbol: 
> _ZN8FXWindow10stringTypeE - 
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/fox12.so (LoadError)
>          from table.rb:3
> 
> Maybe I should just clean every fox-related file from my system and 
> truly start from scratch.

Or at least make sure the 1.0 headers aren't found by accident, yes!


	- Jeroen


More information about the fxruby-users mailing list