[lr-dosbox] Unable to install/compile: /home/pi/RetroPie-Setup/tmp/build/lr-dosbox/dosbox_libretro.so not found
-
Update: I have since sent and merged a PR that fixes this issue.
Log file: https://hastebin.com/ikocalikax.xml
RetroPie version: 4.4
Hardware: Raspberry Pi 3 Model B [not to be confused with the 3B+]I've attempted to compile lr-dosbox at least twice, and every time it give me this error. The piece of code responsible for the error appears to be with lr-dosbox's code itself:
In file included from src/misc/cross.cpp:30:0: src/misc/../../libretro/libretro.h:1272:8: error: redefinition of ‘struct retro_midi_interface’ struct retro_midi_interface ^~~~~~~~~~~~~~~~~~~~ src/misc/../../libretro/libretro.h:1213:8: error: previous definition of ‘struct retro_midi_interface’ struct retro_midi_interface ^~~~~~~~~~~~~~~~~~~~ Makefile.libretro:189: recipe for target 'src/misc/cross.o' failed make: *** [src/misc/cross.o] Error 1 make: *** Waiting for unfinished jobs.... /home/pi Could not successfully build lr-dosbox - DOS emulator (/home/pi/RetroPie-Setup/tmp/build/lr-dosbox/dosbox_libretro.so not found).
Anyone know of a fix?
-
Update: I found the culprit! Turns out that the file
libretro.h
had this struct definition twice:struct retro_midi_interface { retro_midi_input_enabled_t input_enabled; retro_midi_output_enabled_t output_enabled; retro_midi_read_t read; retro_midi_write_t write; retro_midi_flush_t flush; };
This confused
make
since you can't redefine a struct once you declare it, causing errors and an eventual crash. Removing one of the struct definitions appears to have fixed this issue.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.