Re: [Audacity-devel] Patch: Make CVS Audacity compile on RH8.
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
|
From: Dr W. B. <wj...@ab...> - 2002-11-22 11:26:08
|
On Thu, Nov 21, 2002 at 11:54:10AM -0800, Matt Brubeck wrote:
>
> On Nov 21, Dr William Bland wrote:
>
> > The current CVS Audacity will not compile on RedHat8. With the
> > following patch it will compile, but still won't link (see my previous
> > message about not being able to link 1.1.1). I'd still really
> > appreciate any help getting 1.1.1 and/or CVS to link on RH8.
>
> I applied the patch below to CVS -- thanks!
>
> Unfortunately I'm not sure what's causing your link errors. It's
> definitely related to your wxWindows installation. Have you installed
> any older versions of wxWindows in the past on this machine?
Matt,
Thanks for putting my patch in CVS and for pointing at wxWindows
as the source of my problems. I don't know what was wrong with the RPMs
I had (from the wxWindows web site), but I un-installed them and
installed from source instead. I can now get current CVS Audacity to
compile and link (but see below about my patch). Unfortunately it now
segfaults shortly after displaying the main window. The backtrace from
gdb is:
#0 0x409ecb4e in pango_layout_check_lines () from /usr/lib/libpango-1.0.so.0
#1 0x409e9c84 in pango_layout_get_lines () from /usr/lib/libpango-1.0.so.0
#2 0x4022ded0 in wxWindowDC::DoGetTextExtent(wxString const&, int*, int*, int*, int*, wxFont*) const () from /usr/local/lib/libwx_gtk-2.3.so
#3 0x402828e0 in wxDCBase::GetTextExtent(wxString const&, long*, long*, long*, long*, wxFont*) const () from /usr/local/lib/libwx_gtk-2.3.so
#4 0x0805b7bf in AStatus::OnPaint(wxPaintEvent&) (this=0x850de78, event=@0xbffff060) at AStatus.cpp:159
#5 0x402994fe in wxEvtHandler::SearchEventTable(wxEventTable&, wxEvent&) () from /usr/local/lib/libwx_gtk-2.3.so
#6 0x4029932b in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/local/lib/libwx_gtk-2.3.so
#7 0x40262dab in wxWindow::GtkSendPaintEvents() () from /usr/local/lib/libwx_gtk-2.3.so
#8 0x4025dabc in gtk_window_expose_callback(_GtkWidget*, _GdkEventExpose*, wxWindow*) () from /usr/local/lib/libwx_gtk-2.3.so
#9 0x407a20e4 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0
#10 0x40a100c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#11 0x40a248b4 in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
#12 0x40a23689 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#13 0x407e4fdf in gtk_signal_emit () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x40888413 in gtk_widget_event_internal () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x407a0b1c in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x4094469f in gdk_window_process_updates_internal () from /usr/lib/libgdk-x11-2.0.so.0
#17 0x4094473a in gdk_window_process_all_updates () from /usr/lib/libgdk-x11-2.0.so.0
#18 0x407448ea in gtk_container_idle_sizer () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x40a6ec83 in g_idle_dispatch () from /usr/lib/libglib-2.0.so.0
#20 0x40a6bf65 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#21 0x40a6cf98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#22 0x40a6d2ad in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#23 0x40a6da1f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#24 0x407a039f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x40216276 in wxApp::MainLoop() () from /usr/local/lib/libwx_gtk-2.3.so
#26 0x40266004 in wxAppBase::OnRun() () from /usr/local/lib/libwx_gtk-2.3.so
#27 0x40216832 in wxEntry(int, char**) () from /usr/local/lib/libwx_gtk-2.3.so
#28 0x08061bab in main (argc=1, argv=0xbffff974) at AudacityApp.cpp:120
#29 0x405b44ce in __libc_start_main () from /lib/libc.so.6
Hopefully this means something to somebody! ;-)
Going back to my patch, did you change the placement of the '&' for a reason?
Unfortunately with
return (this->*((SPECIALKEYEVENT) &(AudacityApp::OnAllKeys)))
((wxKeyEvent&)event);
as in the current CVS, my gcc (3.2-7 on RH8) complains that:
AudacityApp.cpp: In member function `virtual int
AudacityApp::FilterEvent(wxEvent&)':
AudacityApp.cpp:537: taking address of bound pointer-to-member expression
make[1]: *** [obj/AudacityApp.o] Error 1
but with
return (this->*((SPECIALKEYEVENT) (&AudacityApp::OnAllKeys)))
((wxKeyEvent&)event);
as in my original patch, it compiles fine.
Thanks again for your help.
Best wishes,
Bill.
|