[wxPython] RE: [SciPy-dev] Announce: First installable version of Chaco plotting toolkit is now available
Robin Dunn
robin at alldunn.com
Mon Sep 23 16:09:30 EDT 2002
Skip Montanaro wrote:
>
> Skip> I poked around for "__ti7wxEvent". All I found were a couple undefined
> Skip> references:
> Skip> ./wxPython/build/temp.linux-i686-2.3/helpers.o
> Skip> U __ti7wxEvent
> Skip> ./wxPython/build/temp.linux-i686-2.3/dynamicsash.o
> Skip> U __ti7wxEvent
>
> Robin> I've just tried exactly what you did above on my Mandrake 8.2
> Robin> system with Python 2.2 and it works fine.
>
> What file defines wxEvent? You must surely have a .o file which defines it
> as an exportable symbol.
It should be in wxGTK in src/common/event.cpp (build/event.o).
> Robin> One possibility -- since the wxPython build gets its compiler
> Robin> flags and etc. from Python's build via distutils -- is that there
> Robin> is some flag conflicting with wxGTK's build that has changed with
> Robin> Python 2.3. I'd be interested in seeing a copy of a compile
> Robin> commandline for one of the sources from the wxGTK build and
> Robin> another one from the wxPython build.
>
> An example from (wxPython's internal) wxGTK with the no_rtti and
> no_exceptions flags set:
[...]
These look okay.
> Robin> Another possibility is that it may be fixed simply by disabling
> Robin> rtti and/or exceptions in the wxGTK build. You can try adding
> Robin> the following flags and then rebuilding all of wxGTK and
> Robin> wxPython:
>
> Robin> --enable-no_rtti
> Robin> --enable-no_exceptions
>
> Just tried that. Running wxPython/demo/demo.py now yields:
>
> Traceback (most recent call last):
> File "demo.py", line 3, in ?
> import Main
> File "Main.py", line 15, in ?
> from wxPython.wx import *
> File "/usr/local/lib/python2.3/site-packages/wxPython/__init__.py", line 20, in ?
> import wxc
> ImportError: /usr/local/lib/python2.3/site-packages/wxPython/wxc.so:
> undefined symbol: Eof__C13wxInputStream
>
> which c++filt reports as
>
> wxInputStream::Eof(void) const
>
> The original __ti7wxEvent symbol is no longer to be found anywhere (defined
> or referenced).
Right, it shouldn't be since you built without RTTI.
> Eof__C13wxInputStream is referenced from
> ./wxPython/build/temp.linux-i686-2.3/helpers.o.
I don't see anyway that a whole method could get lost...
>
> Ah, wait a minute. I see a likely candidate for the screwup:
>
> % type c++
> c++ is /usr/local/bin/c++
> % c++ --version
> 3.0.4
> % type gcc
> gcc is /usr/bin/gcc
> % gcc --version
> 2.96
>
> Does mix-n-match across GCC versions strike you as a plausible reason for
> the errors?
...except for this. It's likely that the C++ symbol names are getting
mangled differently by the different compiler versions and the one
symbol reported by the import exception is just the first one found.
--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!
More information about the SciPy-Dev
mailing list