Attract-Mode Support Forum

Attract-Mode Support => General => Topic started by: jarz on September 27, 2021, 12:49:58 PM

Title: Compiling Attract Mode on Fedora 34
Post by: jarz on September 27, 2021, 12:49:58 PM
Created this issue on the github repo.    https://github.com/mickelson/attract/issues/687

Thought I would drop a post here to see if anyone has it successfully installed on fedora.


When I compile i get the following...
Code: [Select]
make
flags: -Wl,--export-dynamic -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread  -DDATA_PATH=\"/usr/local/share/attract/\" -O2 -DNDEBUG -Iextlibs/miniz -Iextlibs/audio/include -D__STDC_CONSTANT_MACROS -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -I/usr/include/ffmpeg -I/usr/include/AL  -Iextlibs/squirrel/include -Iextlibs/sqrat/include -Iextlibs/nowide -Iextlibs/nvapi -Iextlibs/rapidjson/include -Iextlibs/gameswf -DUSE_XLIB -DUSE_FONTCONFIG -DUSE_SWRESAMPLE
Compiling obj/swf.o...
In file included from /usr/include/c++/11/backward/hash_map:60,
                 from extlibs/gameswf/base/container.h:75,
                 from extlibs/gameswf/base/tu_file.h:18,
                 from src/swf.cpp:26:
/usr/include/c++/11/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]
   32 | #warning \
      |  ^~~~~~~
In file included from extlibs/gameswf/gameswf/gameswf_action.h:13,
                 from extlibs/gameswf/gameswf/gameswf_impl.h:14,
                 from src/swf.cpp:28:
extlibs/gameswf/gameswf/gameswf_environment.h:150:17: error: ‘class array<gameswf::as_value> array<gameswf::as_value>::array’ is private within this context
  150 |                 array<as_value> m_local_register;       // function2 uses this
      |                 ^~~~~~~~~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>
      |                ^~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:162:17: error: ‘class array<gameswf::as_value> array<gameswf::as_value>::array’ is private within this context
  162 |                 array<frame_slot>       m_local_frames;
      |                 ^~~~~~~~~~~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>
      |                ^~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:179:78: error: ‘class array<gameswf::as_value> array<gameswf::as_value>::array’ is private within this context
  179 |                 as_value        get_variable(const tu_string& varname, const array<with_stack_entry>& with_stack) const;
      |                                                                              ^~~~~~~~~~~~~~~~~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>
      |                ^~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:181:82: error: ‘class array<gameswf::as_value> array<gameswf::as_value>::array’ is private within this context
  181 |                 as_value        get_variable_raw(const tu_string& varname, const array<with_stack_entry>& with_stack) const;
      |                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>
      |                ^~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:183:88: error: ‘class array<gameswf::as_value> array<gameswf::as_value>::array’ is private within this context
  183 |                 void    set_variable(const tu_string& path, const as_value& val, const array<with_stack_entry>& with_stack);
      |                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>
      |                ^~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:185:92: error: ‘class array<gameswf::as_value> array<gameswf::as_value>::array’ is private within this context
  185 |                 void    set_variable_raw(const tu_string& path, const as_value& val, const array<with_stack_entry>& with_stack);
      |                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~
extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>
      |                ^~~~~~~~
make: *** [Makefile:460: obj/swf.o] Error 1
Title: Re: Compiling Attract Mode on Fedora 34
Post by: cyneater on November 27, 2021, 03:22:50 PM
I get the same error on ubuntu 20.10 and 21.10
as well as lubuntu
found all .deb files which will not install
but when you try and install them with dpkg -i comes up that it uses old dependencies libcurl3 but the latest is libcurl4

Spent ages going in circles

Works on older versions of ubuntu 18.10 but has issues no 20.10

looks like ill just go back to using the keyboard and mouse and launching emulators by them selves
Retro pie is a steaming pile etc etc

I literally want a front end I can choose the emulator and the roms  which attact mode does
I don't want to run windows either...



Title: Re: Compiling Attract Mode on Fedora 34
Post by: silverhawk1 on December 29, 2021, 09:36:16 AM
I have this running on Fedora 35. I ran into the same issue at first, but the key is this line right here:

extlibs/gameswf/gameswf/gameswf_environment.h:51:16: note: declared private here
   51 |         struct vm_stack : private array<as_value>

If you go into that file: extlibs/gameswf/gameswf/gameswf_environment.h
Line 51: struct vm_stack : private array<as_value>

and change private to public, it will compile without issue.