JUCE not compiling on Ubuntu 20.04

I’m using gcc 9.4.0

You can see output from build here: Add missing function · FigBug/Wavetable@c5d67c2 · GitHub

 /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/juce_graphics_Harfbuzz.cpp


  In file included from /usr/include/c++/9/tuple:38,

                   from /usr/include/c++/9/functional:54,
                   from /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/fonts/harfbuzz/hb-cplusplus.hh:35,
                   from /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/fonts/harfbuzz/hb.hh:530,
                   from /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/juce_graphics_Harfbuzz.cpp:85:

  /usr/include/c++/9/utility:308:22: error: ‘__make_integer_seq’ does not
  name a type

    308 |       using __type = __make_integer_seq<_IdxTuple, size_t, _Num>;
        |                      ^~~~~~~~~~~~~~~~~~

  /usr/include/c++/9/utility:330:9: error: ‘__make_integer_seq’ does not
  name a type

    330 |       = __make_integer_seq<integer_sequence, _Tp, _Num>;
        |         ^~~~~~~~~~~~~~~~~~

  /usr/include/c++/9/utility:343:33: error: ‘make_integer_sequence’ does
  not name a type; did you mean ‘integer_sequence’?

    343 |     using make_index_sequence = make_integer_sequence<size_t, _Num>;
        |                                 ^~~~~~~~~~~~~~~~~~~~~
        |                                 integer_sequence

  /usr/include/c++/9/utility:347:32: error: ‘make_index_sequence’ does
  not name a type; did you mean ‘index_sequence’?

    347 |     using index_sequence_for = make_index_sequence<sizeof...(_Types)>;
        |                                ^~~~~~~~~~~~~~~~~~~
        |                                index_sequence

  In file included from /usr/include/c++/9/functional:54,

                   from /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/fonts/harfbuzz/hb-cplusplus.hh:35,
                   from /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/fonts/harfbuzz/hb.hh:530,
                   from /home/runner/work/Wavetable/Wavetable/modules/juce/modules/juce_graphics/juce_graphics_Harfbuzz.cpp:85:

  /usr/include/c++/9/tuple: In function ‘constexpr decltype(auto)
  std::apply(_Fn&&, _Tuple&&)’:

  /usr/include/c++/9/tuple:1693:4: error: ‘make_index_sequence’ does not
  name a type; did you mean ‘index_sequence’?

   1693 |  = make_index_sequence<tuple_size_v<remove_reference_t<_Tuple>>>;
        |    ^~~~~~~~~~~~~~~~~~~
        |    index_sequence

  /usr/include/c++/9/tuple:1696:11: error: ‘_Indices’ was not declared in
  this scope

   1696 |           _Indices{});
        |           ^~~~~~~~

  /usr/include/c++/9/tuple: In function ‘constexpr _Tp
  std::make_from_tuple(_Tuple&&)’:

  /usr/include/c++/9/tuple:1712:2: error: ‘make_index_sequence’ was not
  declared in this scope; did you mean ‘index_sequence’?

   1712 |  make_index_sequence<tuple_size_v<remove_reference_t<_Tuple>>>{});
        |  ^~~~~~~~~~~~~~~~~~~
        |  index_sequence

  /usr/include/c++/9/tuple:1712:63: error: expected primary-expression before
  ‘{’ token

   1712 |  make_index_sequence<tuple_size_v<remove_reference_t<_Tuple>>>{});
        |                                                               ^

  /usr/include/c++/9/tuple:1712:63: error: expected ‘)’ before ‘{’
  token

   1712 |  make_index_sequence<tuple_size_v<remove_reference_t<_Tuple>>>{});
        |                                                               ^
        |                                                               )

  /usr/include/c++/9/tuple:1710:41: note: to match this ‘(’

   1710 |       return __make_from_tuple_impl<_Tp>(
        |                                         ^

  [6/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Debug/__/__/__/modules/juce_data_structures/juce_data_structures.cpp.o


  [7/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Debug/__/__/__/modules/juce_graphics/juce_graphics.cpp.o


  [8/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Debug/__/__/__/modules/juce_core/juce_core.cpp.o


  [9/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Debug/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.o


  ninja: build stopped: subcommand failed.

Harfbuzz needs gcc10 or higher.

Upgrading to gcc11 solved my issue, but the juce readme says gcc7 is supported, so if that’s no longer true the readme should be updated.

1 Like

There’s already a thread about this: JUCE 8 Linux issue with Harfbuzz

This one can be deleted