kakoune: Can't build on Ubuntu 14.04.5

I’m trying to build on Ubuntu 14.04.5. Since the available version of GCC is 4.8.4, I installed clang 3.8 and I am compiling by doing CXX=clang++-3.8 make I think I have installed all dependencies.

However, when compiling, make spits out a lot of warning: unknown attribute 'optimize' ignored [-Wunknown-attributes] and finally stops on

command_manager.cc:466:16: error: no viable overloaded '='
            it = tokens.insert(tokens.erase(it),
            ~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_iterator.h:708:11: note: candidate function (the implicit copy assignment operator) not
      viable: cannot convert argument of incomplete type 'void' to 'const __gnu_cxx::__normal_iterator<Kakoune::Token *, std::vector<Kakoune::Token,
      Kakoune::Allocator<Kakoune::Token, Kakoune::MemoryDomain::Undefined> > >'
    class __normal_iterator
          ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_iterator.h:708:11: note: candidate function (the implicit move assignment operator) not
      viable: cannot convert argument of incomplete type 'void' to '__gnu_cxx::__normal_iterator<Kakoune::Token *, std::vector<Kakoune::Token,
      Kakoune::Allocator<Kakoune::Token, Kakoune::MemoryDomain::Undefined> > >'
2 warnings and 1 error generated.
make: *** [.command_manager.debug.o] Error 1

It looks like it’s using GCC 4.8 libraries? I am confused, since I am using clang-3.8 to compile. Am I doing something wrong?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 20 (9 by maintainers)

Most upvoted comments

GCC 5 is not available by default on Ubuntu 14.04. I solved the issue by following this guide:

  1. Install this (official) PPA:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  1. Update and upgrade:
$ sudo apt-get update && sudo apt-get dselect-upgrade
  1. Install gcc-6 and g+±6:
$ sudo apt-get install gcc-6 g++-6
  1. Compile with:
$ CXX=g++-6 make clean all

Now it compiles fine!

Please add the version requirement for libc++: as it is now in the README, it looks like one can compile the software on Ubuntu 14.04 by using clang >=3.4 and libc++. However this is not true, and your editor cannot be compiled with software available by default on Ubuntu 14.04. I hope the steps above can help other people which have this issue.