Opened 5 years ago

Closed 3 years ago

#2406 closed defect (wontfix)

wxview compilation error

Reported by: martinl Owned by: grass-dev@…
Priority: normal Milestone: 7.0.5
Component: Compiling Version: svn-trunk
Keywords: wxview Cc:
CPU: Unspecified Platform: Linux

Description

Compilation of wxview fails on Debian stable:

c++  -g -Wall  -I/opt/src/grass/dist.x86_64-unknown-linux-gnu/include -I/opt/src/grass/dist.x86_64-unknown-linux-gnu/include   -I/usr/lib/x86_64-linux-gnu/wx/include/base-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DwxUSE_GUI=0 -pthread -DWXINTL_NO_GETTEXT_MACRO -DPACKAGE=\""grassmods"\"   -I/opt/src/grass/dist.x86_64-unknown-linux-gnu/include -I/opt/src/grass/dist.x86_64-unknown-linux-gnu/include -o OBJ.x86_64-unknown-linux-gnu/main.o -c main.cpp
In file included from main.cpp:41:0:
wximgview.h:9:23: error: invalid use of incomplete type ‘class wxFrame’
In file included from /usr/include/wx-2.8/wx/wx.h:27:0,
                 from main.cpp:34:
/usr/include/wx-2.8/wx/utils.h:50:28: error: forward declaration of ‘class wxFrame’
In file included from main.cpp:41:0:
wximgview.h:12:5: error: ‘wxTimer’ does not name a type
wximgview.h:19:19: error: ‘wxSize’ does not name a type
wximgview.h:19:27: error: ISO C++ forbids declaration of ‘size’ with no type [-fpermissive]
wximgview.h:23:17: error: ‘wxPaintEvent’ has not been declared
wximgview.h:24:16: error: ‘wxEraseEvent’ has not been declared
wximgview.h:25:15: error: ‘wxTimerEvent’ has not been declared
wximgview.h: In constructor ‘MyFrame::MyFrame(const int&)’:
wximgview.h:20:4: error: type ‘wxFrame’ is not a direct base of ‘MyFrame’
wximgview.h:20:43: error: ‘wxDefaultPosition’ was not declared in this scope
main.cpp: In function ‘wxAppConsole* wxCreateApp()’:
main.cpp:45:1: error: cannot allocate an object of abstract type ‘MyApp’
In file included from main.cpp:41:0:
wximgview.h:33:7: note:   because the following virtual functions are pure within ‘MyApp’:
In file included from /usr/include/wx-2.8/wx/wx.h:26:0,
                 from main.cpp:34:
/usr/include/wx-2.8/wx/app.h:89:17: note:       virtual int wxAppConsole::OnRun()
main.cpp: At global scope:
main.cpp:47:1: error: incomplete type ‘wxFrame’ used in nested name specifier
main.cpp:48:1: error: invalid use of non-static member function ‘void MyFrame::erase(int&)’
main.cpp:48:1: error: ‘wxEraseEventHandler’ was not declared in this scope
main.cpp:49:1: error: invalid use of non-static member function ‘void MyFrame::redraw(int&)’
main.cpp:49:1: error: ‘wxPaintEventHandler’ was not declared in this scope
main.cpp:50:30: error: invalid use of non-static member function ‘void MyFrame::tick(int&)’
main.cpp:50:34: error: ‘EVT_TIMER’ was not declared in this scope
main.cpp:51:1: error: expected ‘}’ before ‘wxEventTableEntry’
main.cpp:51:1: error: expected ‘,’ or ‘;’ before ‘wxEventTableEntry’
main.cpp:51:1: error: expected declaration before ‘}’ token
main.cpp: In function ‘wxAppConsole* wxCreateApp()’:
main.cpp:45:1: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [OBJ.x86_64-unknown-linux-gnu/main.o] Error 1

BTW, is this application used by someone? Probably it could be disabled from compilation, what do you think?

Change History (3)

comment:1 in reply to:  description Changed 5 years ago by glynn

Replying to martinl:

Compilation of wxview fails on Debian stable:

c++ ... -DwxUSE_GUI=0 ...

The wx-config script used by configure has disabled the GUI component of wxWidgets.

If you have multiple versions of wxWidgets installed, pass the full path to the correct wx-config script to the --with-wxwidgets= configure option.

If you only have a GUI-less version of wxWidgets, it appears that we don't handle that correctly at present. As for whether we should care about that ...

  • It's uncertain whether the wximgview program will be retained (it's unclear whether it has any advantage over the Python version in scripts/wxpyimgview)
  • We'd need a custom test; LOC_CHECK_LIBS isn't going to work for a C++ class (or anything with C++ symbol mangling, for that matter).
  • How common is a GUI-less version of wxWidgets? Should it even be called wxWidgets if it doesn't actually include any widgets?</snark>

comment:2 Changed 3 years ago by martinl

Milestone: 7.0.07.0.5

comment:3 Changed 3 years ago by martinl

Resolution: wontfix
Status: newclosed

wxview has been already removed.

Note: See TracTickets for help on using tickets.