Compile Error Linux Mint 18.3

Issue:
The program fails to build with cmake at 3%. I’ve been following the instructions as presented here:

System Information

  • Operating System: Linux Mint 18.3 Cinnamon 64-bit
  • CPU: AMD FX-6300
  • GPU: GeForce GTX 960
  • Citra Version (found in title bar): Commit SHA: 49c41593d94166190d0274b3391b2f4bde607934
  • Game:
  • Screenshot of Issue (include the full Citra window including titlebar):

Log:
In file included from /home/duofeng/citra/externals/fmt/include/fmt/posix.h:28:0,
from /home/duofeng/citra/externals/fmt/include/fmt/posix.cc:13:
/home/duofeng/citra/externals/fmt/include/fmt/format.h:650:35: error: ‘constexpr’ is not allowed in declaration of friend template specialization ‘const Char* pointer_from(fmt::internal::null_terminating_iterator)’
null_terminating_iterator it);
^
/home/duofeng/citra/externals/fmt/include/fmt/format.h: In instantiation of ‘constexpr const Char* fmt::internal::pointer_from(fmt::internal::null_terminating_iterator) [with Char = char]’:
/home/duofeng/citra/externals/fmt/include/fmt/format.h:3126:54: required from ‘void fmt::do_vformat_to(typename ArgFormatter::range, fmt::basic_string_view, fmt::basic_format_args)::handler::on_replacement_field(iterator) [with ArgFormatter = fmt::arg_formatter<fmt::back_insert_range<fmt::internal::basic_buffer > >; Char = char; Context = fmt::basic_context<std::back_insert_iterator<fmt::internal::basic_buffer >, char>; iterator = fmt::internal::null_terminating_iterator]’
/home/duofeng/citra/externals/fmt/include/fmt/format.h:3154:3: required from ‘typename Context::iterator fmt::do_vformat_to(typename ArgFormatter::range, fmt::basic_string_view, fmt::basic_format_args) [with ArgFormatter = fmt::arg_formatter<fmt::back_insert_range<fmt::internal::basic_buffer > >; Char = char; Context = fmt::basic_context<std::back_insert_iterator<fmt::internal::basic_buffer >, char>; typename Context::iterator = std::back_insert_iterator<fmt::internal::basic_buffer >; typename ArgFormatter::range = fmt::back_insert_range<fmt::internal::basic_buffer >]’
/home/duofeng/citra/externals/fmt/include/fmt/format.h:3279:60: required from here
/home/duofeng/citra/externals/fmt/include/fmt/format.h:653:15: error: ‘const char* fmt::internal::null_terminating_iterator::ptr_’ is private
const Char ptr_;
^
/home/duofeng/citra/externals/fmt/include/fmt/format.h:662:13: error: within this context
return it.ptr_;
^
/home/duofeng/citra/externals/fmt/include/fmt/format.h: In instantiation of ‘constexpr const Char
fmt::internal::pointer_from(fmt::internal::null_terminating_iterator) [with Char = wchar_t]’:
/home/duofeng/citra/externals/fmt/include/fmt/format.h:3126:54: required from ‘void fmt::do_vformat_to(typename ArgFormatter::range, fmt::basic_string_view, fmt::basic_format_args)::handler::on_replacement_field(iterator) [with ArgFormatter = fmt::arg_formatter<fmt::back_insert_range<fmt::internal::basic_buffer<wchar_t> > >; Char = wchar_t; Context = fmt::basic_context<std::back_insert_iterator<fmt::internal::basic_buffer<wchar_t> >, wchar_t>; iterator = fmt::internal::null_terminating_iterator<wchar_t>]’
/home/duofeng/citra/externals/fmt/include/fmt/format.h:3154:3: required from ‘typename Context::iterator fmt::do_vformat_to(typename ArgFormatter::range, fmt::basic_string_view, fmt::basic_format_args) [with ArgFormatter = fmt::arg_formatter<fmt::back_insert_range<fmt::internal::basic_buffer<wchar_t> > >; Char = wchar_t; Context = fmt::basic_context<std::back_insert_iterator<fmt::internal::basic_buffer<wchar_t> >, wchar_t>; typename Context::iterator = std::back_insert_iterator<fmt::internal::basic_buffer<wchar_t> >; typename ArgFormatter::range = fmt::back_insert_range<fmt::internal::basic_buffer<wchar_t> >]’
/home/duofeng/citra/externals/fmt/include/fmt/format.h:3285:60: required from here
/home/duofeng/citra/externals/fmt/include/fmt/format.h:653:15: error: ‘const wchar_t* fmt::internal::null_terminating_iterator<wchar_t>::ptr_’ is private
const Char *ptr_;
^
/home/duofeng/citra/externals/fmt/include/fmt/format.h:662:13: error: within this context
return it.ptr_;
^
externals/fmt/CMakeFiles/fmt.dir/build.make:62: recipe for target ‘externals/fmt/CMakeFiles/fmt.dir/include/fmt/posix.cc.o’ failed
make[2]: *** [externals/fmt/CMakeFiles/fmt.dir/include/fmt/posix.cc.o] Error 1
CMakeFiles/Makefile2:276: recipe for target ‘externals/fmt/CMakeFiles/fmt.dir/all’ failed
make[1]: *** [externals/fmt/CMakeFiles/fmt.dir/all] Error 2
Makefile:140: recipe for target ‘all’ failed
make: *** [all] Error 2

Make sure that your compiler is C++17 compliant.