Tinob / Ishiiruka

GNU General Public License v2.0
357 stars 119 forks source link

Build error using wxWidgets 3.1.4+ on linux #199

Closed jda77 closed 2 years ago

jda77 commented 2 years ago

Attempting to build with wxWidgets 3.1.4 or 3.1.5 fails as wxPaintEvent is now private in these versions. I tried to fix this error myself or downgrade, but so far I have not been successful on either front. Error below:

[ 94%] Building CXX object Source/Core/DolphinWX/CMakeFiles/ishiiruka.dir/FifoPlayerDlg.cpp.o /home/ryan-linux/Downloads/Ishiiruka-master/Source/Core/DolphinWX/FifoPlayerDlg.cpp: In static member function ‘static void FifoPlayerDlg::FileLoaded()’:

/home/ryan-linux/Downloads/Ishiiruka-master/Source/Core/DolphinWX/FifoPlayerDlg.cpp:973:18: error: ‘wxPaintEvent::wxPaintEvent(wxWindowBase*)’ is private within this context

973 | wxPaintEvent event; | ^~~~~

In file included from /usr/local/include/wx-3.1/wx/window.h:18, from /usr/local/include/wx-3.1/wx/nonownedwnd.h:14, from /usr/local/include/wx-3.1/wx/toplevel.h:20, from /usr/local/include/wx-3.1/wx/dialog.h:14, from /home/ryan-linux/Downloads/Ishiiruka-master/Source/Core/DolphinWX/FifoPlayerDlg.h:9, from /home/ryan-linux/Downloads/Ishiiruka-master/Source/Core/DolphinWX/FifoPlayerDlg.cpp:5: /usr/local/include/wx-3.1/wx/event.h:2396:14: note: declared private here

2396 | explicit wxPaintEvent(wxWindowBase* window = NULL); | ^~~~

make[2]: [Source/Core/DolphinWX/CMakeFiles/ishiiruka.dir/build.make:998: Source/Core/DolphinWX/CMakeFiles/ishiiruka.dir/FifoPlayerDlg.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:1689: Source/Core/DolphinWX/CMakeFiles/ishiiruka.dir/all] Error 2 make: *** [Makefile:152: all] Error 2

iwakuraSSBM commented 2 years ago

Experiencing the same error, installing on Debian with wxWidgets version 3.1.7

iwakuraSSBM commented 2 years ago

@jda77 So I've realised that the wxWidget library was meant to be built by the Makefile, I uninstalled the dev librarys I had installed, deleted and remade the Build directory and ignored any warnings about it, the build was successful afterwards.

jda77 commented 2 years ago

After doing sudo make uninstall in the wxWidgets source folder I used, I ran into an issue with cmake.

-- Using static wxWidgets from Externals CMake Error at Externals/wxWidgets3/CMakeLists.txt:861 (message): wxGTK2 needs Xinerama and Xxf86vm

Luckily after installing libxinerama-dev and libxxf86vm-dev cmake worked and no more problems arised through the entire build and install.

The take away: Do not build wxWidgets directly and install dependencies as needed.

I'll close this issue and if anything else happens then I will just open a new one.