Jump to content
Xavi92

ld errors when compiling current SVN branch

Recommended Posts

Hello everyone,

I would like to contribute somehow to 0 A.D. community, so I first wanted to compile from current SVN branch. These were the steps I followed:

cd build/workspaces/
sh update-workspaces.sh
cd gcc/
make -j6

update-workspaces.sh worked as expected, but ld returned some errors when linking "AtlasUI":

Linking AtlasUI
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x758): undefined reference to `non-virtual thunk to wxChoice::GetCount() const'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x760): undefined reference to `non-virtual thunk to wxChoice::GetString(unsigned int) const'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x768): undefined reference to `non-virtual thunk to wxComboBox::SetString(unsigned int, wxString const&)'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x770): undefined reference to `non-virtual thunk to wxChoice::FindString(wxString const&, bool) const'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x790): undefined reference to `non-virtual thunk to wxComboBox::Clear()'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x7b0): undefined reference to `non-virtual thunk to wxChoice::DoInsertItems(wxArrayStringsAdapter const&, unsigned int, void**, wxClientDataType)'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x7c0): undefined reference to `non-virtual thunk to wxChoice::DoSetItemClientData(unsigned int, void*)'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x7c8): undefined reference to `non-virtual thunk to wxChoice::DoGetItemClientData(unsigned int) const'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x7d0): undefined reference to `non-virtual thunk to wxChoice::DoClear()'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x7d8): undefined reference to `non-virtual thunk to wxChoice::DoDeleteOneItem(unsigned int)'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x810): undefined reference to `non-virtual thunk to wxComboBox::SetValue(wxString const&)'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x850): undefined reference to `non-virtual thunk to wxComboBox::Clear()'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x960): undefined reference to `non-virtual thunk to wxComboBox::EnableTextChangedEvents(bool)'
obj/AtlasUI_Release/Object.o:(.data.rel.ro._ZTV14PlayerComboBox[_ZTV14PlayerComboBox]+0x970): undefined reference to `non-virtual thunk to wxComboBox::GetEditable() const'
obj/AtlasUI_Release/Player.o:(.data.rel.ro._ZTV14PlayerNotebook[_ZTV14PlayerNotebook]+0x740): undefined reference to `non-virtual thunk to wxChoicebook::SetImageList(wxImageList*)'
obj/AtlasUI_Release/ActorEditorListCtrl.o:(.data.rel.ro._ZTV19ActorEditorListCtrl[_ZTV19ActorEditorListCtrl]+0x7d8): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)'
obj/AtlasUI_Release/AnimListEditor.o:(.data.rel.ro._ZTV22AnimListEditorListCtrl[_ZTV22AnimListEditorListCtrl]+0x7d8): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)'
obj/AtlasUI_Release/PropListEditor.o:(.data.rel.ro._ZTV22PropListEditorListCtrl[_ZTV22PropListEditorListCtrl]+0x7d8): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)'
obj/AtlasUI_Release/TexListEditor.o:(.data.rel.ro._ZTV21TexListEditorListCtrl[_ZTV21TexListEditorListCtrl]+0x7d8): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)'
obj/AtlasUI_Release/DraggableListCtrl.o:(.data.rel.ro._ZTV17DraggableListCtrl[_ZTV17DraggableListCtrl]+0x7d8): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)'
obj/AtlasUI_Release/EditableListCtrl.o:(.data.rel.ro._ZTV16EditableListCtrl[_ZTV16EditableListCtrl]+0x7d8): more undefined references to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)' follow
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x758): undefined reference to `non-virtual thunk to wxChoice::GetCount() const'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x760): undefined reference to `non-virtual thunk to wxChoice::GetString(unsigned int) const'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x768): undefined reference to `non-virtual thunk to wxComboBox::SetString(unsigned int, wxString const&)'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x770): undefined reference to `non-virtual thunk to wxChoice::FindString(wxString const&, bool) const'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x790): undefined reference to `non-virtual thunk to wxComboBox::Clear()'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x7b0): undefined reference to `non-virtual thunk to wxChoice::DoInsertItems(wxArrayStringsAdapter const&, unsigned int, void**, wxClientDataType)'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x7c0): undefined reference to `non-virtual thunk to wxChoice::DoSetItemClientData(unsigned int, void*)'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x7c8): undefined reference to `non-virtual thunk to wxChoice::DoGetItemClientData(unsigned int) const'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x7d0): undefined reference to `non-virtual thunk to wxChoice::DoClear()'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x7d8): undefined reference to `non-virtual thunk to wxChoice::DoDeleteOneItem(unsigned int)'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x810): undefined reference to `non-virtual thunk to wxComboBox::SetValue(wxString const&)'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x850): undefined reference to `non-virtual thunk to wxComboBox::Clear()'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x960): undefined reference to `non-virtual thunk to wxComboBox::EnableTextChangedEvents(bool)'
obj/AtlasUI_Release/QuickComboBox.o:(.data.rel.ro._ZTV13QuickComboBox[_ZTV13QuickComboBox]+0x970): undefined reference to `non-virtual thunk to wxComboBox::GetEditable() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x7f8): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x820): undefined reference to `non-virtual thunk to wxTextCtrl::GetLineLength(long) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x828): undefined reference to `non-virtual thunk to wxTextCtrl::GetLineText(long) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x830): undefined reference to `non-virtual thunk to wxTextCtrl::GetNumberOfLines() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x838): undefined reference to `non-virtual thunk to wxTextCtrl::IsModified() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x840): undefined reference to `non-virtual thunk to wxTextCtrl::MarkDirty()'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x848): undefined reference to `non-virtual thunk to wxTextCtrl::DiscardEdits()'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x850): undefined reference to `non-virtual thunk to wxTextCtrl::SetStyle(long, long, wxTextAttr const&)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x858): undefined reference to `non-virtual thunk to wxTextCtrl::GetStyle(long, wxTextAttr&)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x860): undefined reference to `non-virtual thunk to wxTextCtrlBase::SetDefaultStyle(wxTextAttr const&)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x870): undefined reference to `non-virtual thunk to wxTextCtrl::XYToPosition(long, long) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x878): undefined reference to `non-virtual thunk to wxTextCtrl::PositionToXY(long, long*, long*) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x880): undefined reference to `non-virtual thunk to wxTextCtrl::ShowPosition(long)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x888): undefined reference to `non-virtual thunk to wxTextCtrl::HitTest(wxPoint const&, long*) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x898): undefined reference to `non-virtual thunk to wxTextCtrl::GetValue() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x8c0): undefined reference to `non-virtual thunk to wxTextCtrl::DoPositionToCoords(long) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x8f8): undefined reference to `non-virtual thunk to wxTextCtrl::WriteText(wxString const&)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x908): undefined reference to `non-virtual thunk to wxTextCtrl::GetValue() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x920): undefined reference to `non-virtual thunk to wxTextCtrl::Remove(long, long)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x930): undefined reference to `non-virtual thunk to wxTextCtrl::Copy()'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x938): undefined reference to `non-virtual thunk to wxTextCtrl::Cut()'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x940): undefined reference to `non-virtual thunk to wxTextCtrl::Paste()'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x980): undefined reference to `non-virtual thunk to wxTextCtrl::SetInsertionPoint(long)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x990): undefined reference to `non-virtual thunk to wxTextCtrl::GetInsertionPoint() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x998): undefined reference to `non-virtual thunk to wxTextCtrl::GetLastPosition() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x9a0): undefined reference to `non-virtual thunk to wxTextCtrl::SetSelection(long, long)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x9b8): undefined reference to `non-virtual thunk to wxTextCtrl::GetSelection(long*, long*) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x9c8): undefined reference to `non-virtual thunk to wxTextCtrl::IsEditable() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x9d0): undefined reference to `non-virtual thunk to wxTextCtrl::SetEditable(bool)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0x9f8): undefined reference to `non-virtual thunk to wxTextCtrl::DoSetValue(wxString const&, int)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0xa00): undefined reference to `non-virtual thunk to wxTextCtrl::DoGetValue() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0xa38): undefined reference to `non-virtual thunk to wxTextCtrl::EnableTextChangedEvents(bool)'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0xa40): undefined reference to `non-virtual thunk to wxTextCtrl::GTKIMFilterKeypress(_GdkEventKey*) const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0xa48): undefined reference to `non-virtual thunk to wxTextCtrl::GetEditable() const'
obj/AtlasUI_Release/QuickFileCtrl.o:(.data.rel.ro._ZTV17FileCtrl_TextCtrl[_ZTV17FileCtrl_TextCtrl]+0xa50): undefined reference to `non-virtual thunk to wxTextCtrl::GetEntry() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x7f8): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x820): undefined reference to `non-virtual thunk to wxTextCtrl::GetLineLength(long) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x828): undefined reference to `non-virtual thunk to wxTextCtrl::GetLineText(long) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x830): undefined reference to `non-virtual thunk to wxTextCtrl::GetNumberOfLines() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x838): undefined reference to `non-virtual thunk to wxTextCtrl::IsModified() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x840): undefined reference to `non-virtual thunk to wxTextCtrl::MarkDirty()'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x848): undefined reference to `non-virtual thunk to wxTextCtrl::DiscardEdits()'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x850): undefined reference to `non-virtual thunk to wxTextCtrl::SetStyle(long, long, wxTextAttr const&)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x858): undefined reference to `non-virtual thunk to wxTextCtrl::GetStyle(long, wxTextAttr&)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x860): undefined reference to `non-virtual thunk to wxTextCtrlBase::SetDefaultStyle(wxTextAttr const&)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x870): undefined reference to `non-virtual thunk to wxTextCtrl::XYToPosition(long, long) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x878): undefined reference to `non-virtual thunk to wxTextCtrl::PositionToXY(long, long*, long*) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x880): undefined reference to `non-virtual thunk to wxTextCtrl::ShowPosition(long)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x888): undefined reference to `non-virtual thunk to wxTextCtrl::HitTest(wxPoint const&, long*) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x898): undefined reference to `non-virtual thunk to wxTextCtrl::GetValue() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x8c0): undefined reference to `non-virtual thunk to wxTextCtrl::DoPositionToCoords(long) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x8f8): undefined reference to `non-virtual thunk to wxTextCtrl::WriteText(wxString const&)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x908): undefined reference to `non-virtual thunk to wxTextCtrl::GetValue() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x920): undefined reference to `non-virtual thunk to wxTextCtrl::Remove(long, long)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x930): undefined reference to `non-virtual thunk to wxTextCtrl::Copy()'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x938): undefined reference to `non-virtual thunk to wxTextCtrl::Cut()'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x940): undefined reference to `non-virtual thunk to wxTextCtrl::Paste()'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x980): undefined reference to `non-virtual thunk to wxTextCtrl::SetInsertionPoint(long)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x990): undefined reference to `non-virtual thunk to wxTextCtrl::GetInsertionPoint() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x998): undefined reference to `non-virtual thunk to wxTextCtrl::GetLastPosition() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x9a0): undefined reference to `non-virtual thunk to wxTextCtrl::SetSelection(long, long)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x9b8): undefined reference to `non-virtual thunk to wxTextCtrl::GetSelection(long*, long*) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x9c8): undefined reference to `non-virtual thunk to wxTextCtrl::IsEditable() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x9d0): undefined reference to `non-virtual thunk to wxTextCtrl::SetEditable(bool)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0x9f8): undefined reference to `non-virtual thunk to wxTextCtrl::DoSetValue(wxString const&, int)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0xa00): undefined reference to `non-virtual thunk to wxTextCtrl::DoGetValue() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0xa38): undefined reference to `non-virtual thunk to wxTextCtrl::EnableTextChangedEvents(bool)'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0xa40): undefined reference to `non-virtual thunk to wxTextCtrl::GTKIMFilterKeypress(_GdkEventKey*) const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0xa48): undefined reference to `non-virtual thunk to wxTextCtrl::GetEditable() const'
obj/AtlasUI_Release/QuickTextCtrl.o:(.data.rel.ro._ZTV13QuickTextCtrl[_ZTV13QuickTextCtrl]+0xa50): undefined reference to `non-virtual thunk to wxTextCtrl::GetEntry() const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x6c0): undefined reference to `non-virtual thunk to wxRadioBox::GetCount() const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x6c8): undefined reference to `non-virtual thunk to wxRadioBox::GetString(unsigned int) const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x6d0): undefined reference to `non-virtual thunk to wxRadioBox::SetString(unsigned int, wxString const&)'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x6e0): undefined reference to `non-virtual thunk to wxRadioBox::SetSelection(int)'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x6e8): undefined reference to `non-virtual thunk to wxRadioBox::GetSelection() const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x6f8): undefined reference to `non-virtual thunk to wxRadioBox::Enable(unsigned int, bool)'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x700): undefined reference to `non-virtual thunk to wxRadioBox::Show(unsigned int, bool)'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x708): undefined reference to `non-virtual thunk to wxRadioBox::IsItemEnabled(unsigned int) const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x710): undefined reference to `non-virtual thunk to wxRadioBox::IsItemShown(unsigned int) const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x718): undefined reference to `non-virtual thunk to wxRadioBox::GetItemFromPoint(wxPoint const&) const'
obj/AtlasUI_Release/Brushes.o:(.data.rel.ro._ZTV14BrushShapeCtrl[_ZTV14BrushShapeCtrl]+0x728): undefined reference to `non-virtual thunk to wxRadioBox::DoSetItemToolTip(unsigned int, wxToolTip*)'
collect2: error: ld returned 1 exit status
AtlasUI.make:146: recipe for target '../../../binaries/system/libAtlasUI.so' failed
make[1]: *** [../../../binaries/system/libAtlasUI.so] Error 1
Makefile:164: recipe for target 'AtlasUI' failed
make: *** [AtlasUI] Error 2

It looks like there is something missing related to wxwidgets, so I search installed packages, but honestly I don't know if everything is OK from this side:

libwxbase3.0-dev/artful,now 3.0.3.1+dfsg2-1 amd64 [installed,automatic]
libwxbase3.1-dev/now 3.1.0-1.zesty amd64 [installed,local]
libwxgtk-media3.1-dev/now 3.1.0-1.zesty amd64 [installed,local]
libwxgtk-webview3.1-dev/now 3.1.0-1.zesty amd64 [installed,local]
libwxgtk3.0-dev/artful,now 3.0.3.1+dfsg2-1 amd64 [installed]
libwxgtk3.1-dev/now 3.1.0-1.zesty amd64 [installed,local]
wx-common/now 3.1.0-1.zesty amd64 [installed,local]
wx3.0-headers/artful,now 3.0.3.1+dfsg2-1 amd64 [installed,automatic]
wx3.1-headers/now 3.1.0-1.zesty amd64 [installed,local]

I have already checked the following packages, described on 0 A.D. "BuildInstructions" webpage", are installed:

udo apt-get install build-essential libboost-dev libboost-filesystem-dev   \
>     libcurl4-gnutls-dev libenet-dev libgloox-dev libicu-dev    \
>     libminiupnpc-dev libnspr4-dev libnvtt-dev libogg-dev libopenal-dev   \
>     libpng-dev libsdl2-dev libvorbis-dev libwxgtk3.0-dev libxcursor-dev      \
>     libxml2-dev subversion zlib1g-dev
[sudo] password for xavier: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.4ubuntu1).
libboost-dev is already the newest version (1.62.0.1).
libboost-filesystem-dev is already the newest version (1.62.0.1).
libminiupnpc-dev is already the newest version (1.9.20140610-4ubuntu1).
libnspr4-dev is already the newest version (2:4.16-1ubuntu2).
libogg-dev is already the newest version (1.3.2-1).
libpng-dev is already the newest version (1.6.34-1).
libvorbis-dev is already the newest version (1.3.5-4).
subversion is already the newest version (1.9.7-2ubuntu1).
zlib1g-dev is already the newest version (1:1.2.11.dfsg-0ubuntu2).
libenet-dev is already the newest version (1.3.12+ds-2).
libgloox-dev is already the newest version (1.0.18-1).
libnvtt-dev is already the newest version (2.0.8-1+dfsg-8.1).
libopenal-dev is already the newest version (1:1.17.2-4).
libsdl2-dev is already the newest version (2.0.6+dfsg1-3ubuntu1).
libwxgtk3.0-dev is already the newest version (3.0.3.1+dfsg2-1).
libcurl4-gnutls-dev is already the newest version (7.55.1-1ubuntu2.2).
libicu-dev is already the newest version (57.1-6ubuntu0.2).
libxcursor-dev is already the newest version (1:1.1.14-3ubuntu0.1).
libxml2-dev is already the newest version (2.9.4+dfsg1-4ubuntu1.2).
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

I have asked on #0ad-dev IRC channel, but nobody could help me - instead, they encouraged me to sign up at the forums. FYI, I am using Kubuntu 17.10.

Thanks for reading,

Xavi

Share this post


Link to post
Share on other sites

If the wxWidgets presents, the problem can be in different build configurations (different ABI for different versions of compilers - built with c++98 vs built with c++11).

Or too many different versions of the wxWidgets.

Share this post


Link to post
Share on other sites

It looks you are mixing packages of artful (3.0) and zesty (3.1). If you are using artful (17.10) you should remove all packages of zesty (3.1, strangely newer than the ones in artful 3.0), probably installed from a third party PPA.

Share this post


Link to post
Share on other sites

In fact, I was using Zesty some weeks ago and I still had the same problems (obviously, Artful packages were not yet installed). Now, I have removed all packages from Zesty, but still getting the same linker errors.

Share this post


Link to post
Share on other sites

Just to be sure I'd suggest running:

Quote

dpkg -l | grep wx

then remove all packages that can be removed (without removing other packages depending on it) and reinstall libwxgtk3.0-dev again.

In some case where packages from different PPA or ubuntu versions get mixed it may make more sense to just format and reinstall a clean system from scratch.

Share this post


Link to post
Share on other sites

I've built 0ad successfully on a clean Kubuntu 17.10. wxWidgets packages:

> dpkg -l | grep wx
ii  libwxbase3.0-0v5:amd64  3.0.3.1+dfsg2-1  amd64        wxBase library (runtime) - non-GUI support classes of wxWidgets toolkit
ii  libwxbase3.0-dev        3.0.3.1+dfsg2-1  amd64        wxBase library (development) - non-GUI support classes of wxWidgets toolkit
ii  libwxgtk3.0-0v5:amd64   3.0.3.1+dfsg2-1  amd64        wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
ii  libwxgtk3.0-dev         3.0.3.1+dfsg2-1  amd64        wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
ii  wx-common               3.0.3.1+dfsg2-1  amd64        wxWidgets Cross-platform C++ GUI toolkit (common support files)
ii  wx3.0-headers           3.0.3.1+dfsg2-1  amd64        wxWidgets Cross-platform C++ GUI toolkit (header files)

 

Share this post


Link to post
Share on other sites

Thanks vladislavbelov for testing this out. I've ensured to be using the same packages as you, see dpkg output below:

$ dpkg -l | grep wx
ii  libwxbase3.0-0v5:amd64                          3.0.3.1+dfsg2-1                             amd64        wxBase library (runtime) - non-GUI support classes of wxWidgets toolkit
ii  libwxbase3.0-dev                                3.0.3.1+dfsg2-1                             amd64        wxBase library (development) - non-GUI support classes of wxWidgets toolkit
ii  libwxgtk3.0-0v5:amd64                           3.0.3.1+dfsg2-1                             amd64        wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
ii  libwxgtk3.0-dev                                 3.0.3.1+dfsg2-1                             amd64        wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
ii  wx-common                                       3.0.3.1+dfsg2-1                             amd64        wxWidgets Cross-platform C++ GUI toolkit (common support files)
ii  wx3.0-headers                                   3.0.3.1+dfsg2-1                             amd64        wxWidgets Cross-platform C++ GUI toolkit (header files)

However, it keeps throwing out the same errors when linking. I've also ran:

$ sudo apt install libwxbase3.0-0v5 libwxbase3.0-dev libwxgtk3.0-0v5 libwxgtk3.0-dev wx-common wx3.0-headers --reinstall

Just to ensure packages are fresh, but no luck whatsoever.

Share this post


Link to post
Share on other sites

Make sure to do this before building after previous failure:

./clean-workspaces.sh

And as a last resort if it still doesn't work you may want to compile without atlas, passing --disable-atlas to ./update-workspaces.sh

Share this post


Link to post
Share on other sites

Passing --disable-atlas to ./update-workspaces.sh made it for me. This should be enough so far, so now I can dig into 0 A.D.'s source code and learn from it.

Thanks a lot!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×