linux / posix build failing on aarch64 #196

Closed
opened 2019-12-27 23:45:42 +00:00 by clort81 · 1 comment
clort81 commented 2019-12-27 23:45:42 +00:00 (Migrated from github.com)

Hello, played this ages ago and would like to get it running (perhaps packaged) for linux-arm.
Wine is not an option for arm.

$scons bits=64
scons: Reading SConscript files ...
Building for: posix
Using toolchain: default
C++ compiler: g++
Checking whether the C compiler works... (cached) yes
Checking whether the C++ compiler works... (cached) yes
Checking for C library z... (cached) yes
Checking for C++ header file boost/lexical_cast.hpp... (cached) yes
Checking for C++ header file boost/optional.hpp... (cached) yes
Checking for C++ header file boost/ptr_container/ptr_container.hpp... (cached) yes
Checking for C++ header file boost/any.hpp... (cached) yes
Checking for C++ header file boost/math_fwd.hpp... (cached) yes
Checking for C++ header file boost/spirit/include/classic.hpp... (cached) yes
Checking for C++ library boost_system... (cached) yes
Checking for C++ library boost_filesystem... (cached) yes
Checking for C++ library boost_thread... (cached) yes
Checking for C++ library sfml-system... (cached) yes
Checking for C++ library sfml-window... (cached) yes
Checking for C++ library sfml-audio... (cached) yes
Checking for C++ library sfml-graphics... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...

...

In file included from build/obj/game/boe.actions.cpp:38:
src/tools/enum_map.hpp:21:2: error: ‘reference’ does not name a type
  reference at(size_type pos) = delete;
  ^~~~~~~~~
src/tools/enum_map.hpp:21:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:22:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference at(size_type pos) const = delete;
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:22:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp:23:2: error: ‘reference’ does not name a type
  reference operator[](size_type pos) = delete;
  ^~~~~~~~~
src/tools/enum_map.hpp:23:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:24:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference operator[](size_type pos) const = delete;
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:24:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp:25:2: error: ‘reference’ does not name a type
  reference at(E pos) {return array::at(static_cast<int>(pos));};
  ^~~~~~~~~
src/tools/enum_map.hpp:25:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:26:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference at(E pos) const {return array::operator[](static_cast<int>(pos));};
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:26:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp:27:2: error: ‘reference’ does not name a type
  reference operator[](E pos) {return array::operator[](static_cast<int>(pos));};
  ^~~~~~~~~
src/tools/enum_map.hpp:27:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:28:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference operator[](E pos) const = delete;
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:28:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp: In constructor ‘enum_map_impl<E, T, n>::enum_map_impl(std::initializer_list<T>)’:
src/tools/enum_map.hpp:19:33: error: there are no arguments to ‘begin’ that depend on a template parameter, so a declaration of ‘begin’ must be available [-fpermissive]
   std::copy(l.begin(), l.end(), begin());
                                 ^~~~~
src/tools/enum_map.hpp:19:33: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)

building with gcc version 8.3.0 (Debian 8.3.0-26), Target: aarch64-linux-gnu

Adding -fpermissive to scons gets me Checking whether the C++ compiler works... no
There's a problem with your compiler!

Hello, played this ages ago and would like to get it running (perhaps packaged) for linux-arm. Wine is not an option for arm. ``` $scons bits=64 scons: Reading SConscript files ... Building for: posix Using toolchain: default C++ compiler: g++ Checking whether the C compiler works... (cached) yes Checking whether the C++ compiler works... (cached) yes Checking for C library z... (cached) yes Checking for C++ header file boost/lexical_cast.hpp... (cached) yes Checking for C++ header file boost/optional.hpp... (cached) yes Checking for C++ header file boost/ptr_container/ptr_container.hpp... (cached) yes Checking for C++ header file boost/any.hpp... (cached) yes Checking for C++ header file boost/math_fwd.hpp... (cached) yes Checking for C++ header file boost/spirit/include/classic.hpp... (cached) yes Checking for C++ library boost_system... (cached) yes Checking for C++ library boost_filesystem... (cached) yes Checking for C++ library boost_thread... (cached) yes Checking for C++ library sfml-system... (cached) yes Checking for C++ library sfml-window... (cached) yes Checking for C++ library sfml-audio... (cached) yes Checking for C++ library sfml-graphics... (cached) yes scons: done reading SConscript files. scons: Building targets ... ... In file included from build/obj/game/boe.actions.cpp:38: src/tools/enum_map.hpp:21:2: error: ‘reference’ does not name a type reference at(size_type pos) = delete; ^~~~~~~~~ src/tools/enum_map.hpp:21:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended) src/tools/enum_map.hpp:22:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’? const_reference at(size_type pos) const = delete; ^~~~~~~~~~~~~~~ const_row_ref src/tools/enum_map.hpp:22:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended) src/tools/enum_map.hpp:23:2: error: ‘reference’ does not name a type reference operator[](size_type pos) = delete; ^~~~~~~~~ src/tools/enum_map.hpp:23:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended) src/tools/enum_map.hpp:24:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’? const_reference operator[](size_type pos) const = delete; ^~~~~~~~~~~~~~~ const_row_ref src/tools/enum_map.hpp:24:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended) src/tools/enum_map.hpp:25:2: error: ‘reference’ does not name a type reference at(E pos) {return array::at(static_cast<int>(pos));}; ^~~~~~~~~ src/tools/enum_map.hpp:25:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended) src/tools/enum_map.hpp:26:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’? const_reference at(E pos) const {return array::operator[](static_cast<int>(pos));}; ^~~~~~~~~~~~~~~ const_row_ref src/tools/enum_map.hpp:26:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended) src/tools/enum_map.hpp:27:2: error: ‘reference’ does not name a type reference operator[](E pos) {return array::operator[](static_cast<int>(pos));}; ^~~~~~~~~ src/tools/enum_map.hpp:27:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended) src/tools/enum_map.hpp:28:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’? const_reference operator[](E pos) const = delete; ^~~~~~~~~~~~~~~ const_row_ref src/tools/enum_map.hpp:28:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended) src/tools/enum_map.hpp: In constructor ‘enum_map_impl<E, T, n>::enum_map_impl(std::initializer_list<T>)’: src/tools/enum_map.hpp:19:33: error: there are no arguments to ‘begin’ that depend on a template parameter, so a declaration of ‘begin’ must be available [-fpermissive] std::copy(l.begin(), l.end(), begin()); ^~~~~ src/tools/enum_map.hpp:19:33: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) ``` building with gcc version 8.3.0 (Debian 8.3.0-26), Target: aarch64-linux-gnu Adding -fpermissive to scons gets me Checking whether the C++ compiler works... no There's a problem with your compiler!
clort81 commented 2019-12-29 22:55:31 +00:00 (Migrated from github.com)
[https://github.com/calref/cboe/issues/203](https://github.com/calref/cboe/issues/203 ) fixes it for me.
Sign in to join this conversation.
No description provided.