noreply at rubyforge.org
2008-May-18 11:46 UTC
[wxruby-development] [ wxruby-Bugs-20211 ] Unresolved symbol due to linkage error
Bugs item #20211, was opened at 2008-05-18 13:46 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=218&aid=20211&group_id=35 Category: Compile/build Group: current Status: Open Resolution: None Priority: 3 Submitted By: Tobias Peters (t-peters) Assigned to: Nobody (None) Summary: Unresolved symbol due to linkage error Initial Comment: While compiling wxruby from source on an Ubuntu system using the distribution''s own wxgtk 2.8 development package, I noticed a missing link dependency: The wxruby2.so module is created at the end of the rake-driven compilation with the command g++ -shared -fPIC -o -L. -rdynamic -Wl,-export-dynamic -shared obj/AboutDialogInfo.o obj/AcceleratorEntry.o obj/AcceleratorTable.o obj/ActivateEvent.o obj/Animation.o obj/AnimationCtrl.o obj/App.o obj/ArtProvider.o obj/AuiDockArt.o obj/AuiManager.o obj/AuiManagerEvent.o obj/AuiNotebook.o obj/AuiNotebookEvent.o obj/AuiPaneInfo.o obj/Bitmap.o obj/BitmapButton.o obj/BitmapComboBox.o obj/BitmapDataObject.o obj/BoxSizer.o obj/Brush.o obj/BusyInfo.o obj/Button.o obj/CalculateLayoutEvent.o obj/CalendarCtrl.o obj/CalendarDateAttr.o obj/CalendarEvent.o obj/Caret.o obj/CheckBox.o obj/CheckListBox.o obj/ChildFocusEvent.o obj/Choice.o obj/Choicebook.o obj/ChoicebookEvent.o obj/ClientDC.o obj/ClientDataContainer.o obj/Clipboard.o obj/CloseEvent.o obj/CollapsiblePane.o obj/CollapsiblePaneEvent.o obj/Colour.o obj/ColourData.o obj/ColourDialog.o obj/ComboBox.o obj/CommandEvent.o obj/ContextMenuEvent.o obj/Control.o obj/ControlWithItems.o obj/Cursor.o obj/DC.o obj/DataObject.o obj/DataObjectSimple.o obj/Dialog.o obj/DirDialog.o obj/DragImage.o obj/DropSource.o obj/DropTarget.o obj/EraseEvent.o obj/Event.o obj/EvtHandler.o obj/FileDataObject.o obj/FileDialog.o obj/FileDropTarget.o obj/FindDialogEvent.o obj/FindReplaceData.o obj/FindReplaceDialog.o obj/FlexGridSizer.o obj/FocusEvent.o obj/Font.o obj/FontData.o obj/FontDialog.o obj/Frame.o obj/GBPosition.o obj/GBSpan.o obj/GDIObject.o obj/GLCanvas.o obj/Gauge.o obj/GenericDirCtrl.o obj/GraphicsBrush.o obj/GraphicsContext.o obj/GraphicsFont.o obj/GraphicsMatrix.o obj/GraphicsObject.o obj/GraphicsPath.o obj/GraphicsPen.o obj/Grid.o obj/GridBagSizer.o obj/GridCellAttr.o obj/GridCellBoolEditor.o obj/GridCellBoolRenderer.o obj/GridCellChoiceEditor.o obj/GridCellEditor.o obj/GridCellFloatEditor.o obj/GridCellFloatRenderer.o obj/GridCellNumberEditor.o obj/GridCellNumberRenderer.o obj/GridCellRenderer.o obj/GridCellStringRenderer.o obj/GridCellTextEditor.o obj/GridEditorCreatedEvent.o obj/GridEvent.o obj/GridRangeSelectEvent.o obj/GridSizeEvent.o obj/GridSizer.o obj/GridTableBase.o obj/HelpController.o obj/HtmlCell.o obj/HtmlCellEvent.o obj/HtmlContainerCell.o obj/HtmlEasyPrinting.o obj/HtmlHelpController.o obj/HtmlLinkEvent.o obj/HtmlLinkInfo.o obj/HtmlWidgetCell.o obj/HtmlWindow.o obj/HyperlinkCtrl.o obj/HyperlinkEvent.o obj/Icon.o obj/IconBundle.o obj/IconizeEvent.o obj/IdleEvent.o obj/Image.o obj/ImageList.o obj/KeyEvent.o obj/LayoutAlgorithm.o obj/ListBox.o obj/ListCtrl.o obj/ListEvent.o obj/ListItem.o obj/ListItemAttr.o obj/Listbook.o obj/ListbookEvent.o obj/Locale.o obj/Log.o obj/LogTextCtrl.o obj/MDIChildFrame.o obj/MDIParentFrame.o obj/Mask.o obj/MediaCtrl.o obj/MediaEvent.o obj/MemoryDC.o obj/Menu.o obj/MenuBar.o obj/MenuEvent.o obj/MenuItem.o obj/MessageDialog.o obj/MiniFrame.o obj/MouseEvent.o obj/MoveEvent.o obj/MultiChoiceDialog.o obj/Notebook.o obj/NotebookEvent.o obj/NotifyEvent.o obj/NumberEntryDialog.o obj/Object.o obj/PageSetupDialog.o obj/PageSetupDialogData.o obj/PaintDC.o obj/PaintEvent.o obj/Panel.o obj/PasswordEntryDialog.o obj/Pen.o obj/Point.o obj/PreviewCanvas.o obj/PreviewControlBar.o obj/PreviewFrame.o obj/PrintData.o obj/PrintDialog.o obj/PrintDialogData.o obj/PrintPreview.o obj/Printer.o obj/Printout.o obj/ProgressDialog.o obj/QueryLayoutInfoEvent.o obj/RadioBox.o obj/RadioButton.o obj/Rect.o obj/Region.o obj/RendererNative.o obj/SashEvent.o obj/SashLayoutWindow.o obj/SashWindow.o obj/ScreenDC.o obj/ScrollBar.o obj/ScrollEvent.o obj/ScrollWinEvent.o obj/ScrolledWindow.o obj/SearchCtrl.o obj/SetCursorEvent.o obj/ShowEvent.o obj/SingleChoiceDialog.o obj/Size.o obj/SizeEvent.o obj/Sizer.o obj/SizerItem.o obj/Slider.o obj/Sound.o obj/SpinButton.o obj/SpinCtrl.o obj/SpinEvent.o obj/SplashScreen.o obj/SplitterEvent.o obj/SplitterWindow.o obj/StaticBitmap.o obj/StaticBox.o obj/StaticBoxSizer.o obj/StaticLine.o obj/StaticText.o obj/StatusBar.o obj/StdDialogButtonSizer.o obj/StyledTextCtrl.o obj/StyledTextEvent.o obj/SystemSettings.o obj/TaskBarIcon.o obj/TextAttr.o obj/TextCtrl.o obj/TextDataObject.o obj/TextDropTarget.o obj/TextEntryDialog.o obj/TextUrlEvent.o obj/TextValidator.o obj/Timer.o obj/TimerEvent.o obj/TipProvider.o obj/TipWindow.o obj/ToggleButton.o obj/ToolBar.o obj/ToolBarToolBase.o obj/ToolTip.o obj/TopLevelWindow.o obj/TreeCtrl.o obj/TreeEvent.o obj/UpdateUIEvent.o obj/Validator.o obj/Window.o obj/WindowCreateEvent.o obj/WindowDC.o obj/WindowDestroyEvent.o obj/WindowDisabler.o obj/Wizard.o obj/WizardEvent.o obj/WizardPage.o obj/WizardPageSimple.o obj/XmlResource.o obj/RubyConstants.o obj/RubyStockObjects.o obj/Functions.o obj/Mac.o obj/wx.o -pthread -Wl,-Bsymbolic-functions -lwx_gtk2u_stc-2.8 -lwx_gtk2u_gl-2.8 -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 -lpthread -ldl -lcrypt -lm -Wl,-Bdynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -o lib/wxruby2.so After installing everything with rake install, trying to use the wx extension fails with error message /usr/local/lib/site_ruby/1.8/i486-linux/wxruby2.so: /usr/local/lib/site_ruby/1.8/i486-linux/wxruby2.so: undefined symbol: _ZNK11wxMediaCtrl12GetClassInfoEv - /usr/local/lib/site_ruby/1.8/i486-linux/wxruby2.so (LoadError) from /usr/local/lib/site_ruby/1.8/wx.rb:12 Searching for the missing symbol, I find it is defined on the system in /usr/lib/libwx_gtk2u_media-2.8.so. I try to fix it by adding -lwx_gtk2u_media-2.8 to the linker command line: g++ -shared -fPIC -o -L. -rdynamic -Wl,-export-dynamic -shared obj/AboutDialogInfo.o obj/AcceleratorEntry.o obj/AcceleratorTable.o obj/ActivateEvent.o obj/Animation.o obj/AnimationCtrl.o obj/App.o obj/ArtProvider.o obj/AuiDockArt.o obj/AuiManager.o obj/AuiManagerEvent.o obj/AuiNotebook.o obj/AuiNotebookEvent.o obj/AuiPaneInfo.o obj/Bitmap.o obj/BitmapButton.o obj/BitmapComboBox.o obj/BitmapDataObject.o obj/BoxSizer.o obj/Brush.o obj/BusyInfo.o obj/Button.o obj/CalculateLayoutEvent.o obj/CalendarCtrl.o obj/CalendarDateAttr.o obj/CalendarEvent.o obj/Caret.o obj/CheckBox.o obj/CheckListBox.o obj/ChildFocusEvent.o obj/Choice.o obj/Choicebook.o obj/ChoicebookEvent.o obj/ClientDC.o obj/ClientDataContainer.o obj/Clipboard.o obj/CloseEvent.o obj/CollapsiblePane.o obj/CollapsiblePaneEvent.o obj/Colour.o obj/ColourData.o obj/ColourDialog.o obj/ComboBox.o obj/CommandEvent.o obj/ContextMenuEvent.o obj/Control.o obj/ControlWithItems.o obj/Cursor.o obj/DC.o obj/DataObject.o obj/DataObjectSimple.o obj/Dialog.o obj/DirDialog.o obj/DragImage.o obj/DropSource.o obj/DropTarget.o obj/EraseEvent.o obj/Event.o obj/EvtHandler.o obj/FileDataObject.o obj/FileDialog.o obj/FileDropTarget.o obj/FindDialogEvent.o obj/FindReplaceData.o obj/FindReplaceDialog.o obj/FlexGridSizer.o obj/FocusEvent.o obj/Font.o obj/FontData.o obj/FontDialog.o obj/Frame.o obj/GBPosition.o obj/GBSpan.o obj/GDIObject.o obj/GLCanvas.o obj/Gauge.o obj/GenericDirCtrl.o obj/GraphicsBrush.o obj/GraphicsContext.o obj/GraphicsFont.o obj/GraphicsMatrix.o obj/GraphicsObject.o obj/GraphicsPath.o obj/GraphicsPen.o obj/Grid.o obj/GridBagSizer.o obj/GridCellAttr.o obj/GridCellBoolEditor.o obj/GridCellBoolRenderer.o obj/GridCellChoiceEditor.o obj/GridCellEditor.o obj/GridCellFloatEditor.o obj/GridCellFloatRenderer.o obj/GridCellNumberEditor.o obj/GridCellNumberRenderer.o obj/GridCellRenderer.o obj/GridCellStringRenderer.o obj/GridCellTextEditor.o obj/GridEditorCreatedEvent.o obj/GridEvent.o obj/GridRangeSelectEvent.o obj/GridSizeEvent.o obj/GridSizer.o obj/GridTableBase.o obj/HelpController.o obj/HtmlCell.o obj/HtmlCellEvent.o obj/HtmlContainerCell.o obj/HtmlEasyPrinting.o obj/HtmlHelpController.o obj/HtmlLinkEvent.o obj/HtmlLinkInfo.o obj/HtmlWidgetCell.o obj/HtmlWindow.o obj/HyperlinkCtrl.o obj/HyperlinkEvent.o obj/Icon.o obj/IconBundle.o obj/IconizeEvent.o obj/IdleEvent.o obj/Image.o obj/ImageList.o obj/KeyEvent.o obj/LayoutAlgorithm.o obj/ListBox.o obj/ListCtrl.o obj/ListEvent.o obj/ListItem.o obj/ListItemAttr.o obj/Listbook.o obj/ListbookEvent.o obj/Locale.o obj/Log.o obj/LogTextCtrl.o obj/MDIChildFrame.o obj/MDIParentFrame.o obj/Mask.o obj/MediaCtrl.o obj/MediaEvent.o obj/MemoryDC.o obj/Menu.o obj/MenuBar.o obj/MenuEvent.o obj/MenuItem.o obj/MessageDialog.o obj/MiniFrame.o obj/MouseEvent.o obj/MoveEvent.o obj/MultiChoiceDialog.o obj/Notebook.o obj/NotebookEvent.o obj/NotifyEvent.o obj/NumberEntryDialog.o obj/Object.o obj/PageSetupDialog.o obj/PageSetupDialogData.o obj/PaintDC.o obj/PaintEvent.o obj/Panel.o obj/PasswordEntryDialog.o obj/Pen.o obj/Point.o obj/PreviewCanvas.o obj/PreviewControlBar.o obj/PreviewFrame.o obj/PrintData.o obj/PrintDialog.o obj/PrintDialogData.o obj/PrintPreview.o obj/Printer.o obj/Printout.o obj/ProgressDialog.o obj/QueryLayoutInfoEvent.o obj/RadioBox.o obj/RadioButton.o obj/Rect.o obj/Region.o obj/RendererNative.o obj/SashEvent.o obj/SashLayoutWindow.o obj/SashWindow.o obj/ScreenDC.o obj/ScrollBar.o obj/ScrollEvent.o obj/ScrollWinEvent.o obj/ScrolledWindow.o obj/SearchCtrl.o obj/SetCursorEvent.o obj/ShowEvent.o obj/SingleChoiceDialog.o obj/Size.o obj/SizeEvent.o obj/Sizer.o obj/SizerItem.o obj/Slider.o obj/Sound.o obj/SpinButton.o obj/SpinCtrl.o obj/SpinEvent.o obj/SplashScreen.o obj/SplitterEvent.o obj/SplitterWindow.o obj/StaticBitmap.o obj/StaticBox.o obj/StaticBoxSizer.o obj/StaticLine.o obj/StaticText.o obj/StatusBar.o obj/StdDialogButtonSizer.o obj/StyledTextCtrl.o obj/StyledTextEvent.o obj/SystemSettings.o obj/TaskBarIcon.o obj/TextAttr.o obj/TextCtrl.o obj/TextDataObject.o obj/TextDropTarget.o obj/TextEntryDialog.o obj/TextUrlEvent.o obj/TextValidator.o obj/Timer.o obj/TimerEvent.o obj/TipProvider.o obj/TipWindow.o obj/ToggleButton.o obj/ToolBar.o obj/ToolBarToolBase.o obj/ToolTip.o obj/TopLevelWindow.o obj/TreeCtrl.o obj/TreeEvent.o obj/UpdateUIEvent.o obj/Validator.o obj/Window.o obj/WindowCreateEvent.o obj/WindowDC.o obj/WindowDestroyEvent.o obj/WindowDisabler.o obj/Wizard.o obj/WizardEvent.o obj/WizardPage.o obj/WizardPageSimple.o obj/XmlResource.o obj/RubyConstants.o obj/RubyStockObjects.o obj/Functions.o obj/Mac.o obj/wx.o -pthread -Wl,-Bsymbolic-functions -lwx_gtk2u_media-2.8 -lwx_gtk2u_stc-2.8 -lwx_gtk2u_gl-2.8 -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 -lpthread -ldl -lcrypt -lm -Wl,-Bdynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -o lib/wxruby2.so After repeating the rake install step, the unresolved symbol error is gone and I can execute the example programs. Please fix this error by linking against the library that contains the wxMediaCtrl class. ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=218&aid=20211&group_id=35