libretro / dosbox-libretro

Port of DOSBox (upstream) to the libretro API.
GNU General Public License v2.0
61 stars 40 forks source link

build failed in gcc11 #137

Open guoyunhe opened 2 years ago

guoyunhe commented 2 years ago
[   32s] In file included from libretro/dosbox.cpp:38:
[   32s] ./include/setup.h:92:35: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    92 |         Value& operator= (Hex in) throw(WrongType)                { return copy(Value(in));}
[   32s]       |                                   ^~~~~
[   32s] ./include/setup.h:93:35: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    93 |         Value& operator= (int in) throw(WrongType)                { return copy(Value(in));}
[   32s]       |                                   ^~~~~
[   32s] ./include/setup.h:94:36: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    94 |         Value& operator= (bool in) throw(WrongType)               { return copy(Value(in));}
[   32s]       |                                    ^~~~~
[   32s] ./include/setup.h:95:38: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    95 |         Value& operator= (double in) throw(WrongType)             { return copy(Value(in));}
[   32s]       |                                      ^~~~~
[   32s] ./include/setup.h:96:50: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    96 |         Value& operator= (std::string const& in) throw(WrongType) { return copy(Value(in));}
[   32s]       |                                                  ^~~~~
[   32s] ./include/setup.h:97:50: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    97 |         Value& operator= (char const * const in) throw(WrongType) { return copy(Value(in));}
[   32s]       |                                                  ^~~~~
[   32s] ./include/setup.h:98:44: error: ISO C++17 does not allow dynamic exception specifications
[   32s]    98 |         Value& operator= (Value const& in) throw(WrongType)       { return copy(Value(in));}
[   32s]       |                                            ^~~~~
[   32s] ./include/setup.h:101:32: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   101 |         operator bool () const throw(WrongType);
[   32s]       |                                ^~~~~
[   32s] ./include/setup.h:102:31: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   102 |         operator Hex () const throw(WrongType);
[   32s]       |                               ^~~~~
[   32s] ./include/setup.h:103:31: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   103 |         operator int () const throw(WrongType);
[   32s]       |                               ^~~~~
[   32s] ./include/setup.h:104:34: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   104 |         operator double () const throw(WrongType);
[   32s]       |                                  ^~~~~
[   32s] ./include/setup.h:105:39: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   105 |         operator char const* () const throw(WrongType);
[   32s]       |                                       ^~~~~
[   32s] ./include/setup.h:106:70: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   106 |         bool SetValue(std::string const& in,Etype _type = V_CURRENT) throw(WrongType);
[   32s]       |                                                                      ^~~~~
[   32s] ./include/setup.h:111:38: error: ISO C++17 does not allow dynamic exception specifications
[   32s]   111 |         Value& copy(Value const& in) throw(WrongType);
[   32s]       |                                      ^~~~~
[   32s] make: *** [Makefile.libretro:234: libretro/dosbox.o] Error 1
bugalo commented 2 years ago

It took me some time to find the correct flags for it to compile, so I leave it here in case anyone else is interested. This works for me:

NOCLEAN=1 CXX="g++ -std=gnu++11" ./libretro-build.sh dosbox