Skip to content

Compilation failed on macOS Catalina with default compiler

With compiler AppleClang 11.0.0.11000033 on macOS 10.15.1 (Catalina), I obtain following errors (same kind, several times):

pugs/src/output/VTKWriter.hpp:155:54: error: no member named 'name' in 'VTKWriter::VTKType<long>'
    os << "<DataArray type=\"" << VTKType<DataType>::name << "\" Name=\"" << name << "\">\n";

and if I work around these errors, I get:

[100%] Linking CXX executable pugs
clang: warning: argument unused during compilation: '--gcc-toolchain=/usr' [-Wunused-command-line-argument]
Undefined symbols for architecture x86_64:
  "std::__1::__libcpp_db::__decrementable(void const*) const", referenced from:
      std::__1::__wrap_iter<char*>::operator--() in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::operator--() in libPugsUtils.a(PugsUtils.cpp.o)
  "std::__1::__libcpp_db::__find_c_from_i(void*) const", referenced from:
      std::__1::vector<CLI::Option const*, std::__1::allocator<CLI::Option const*> >::erase(std::__1::__wrap_iter<CLI::Option const* const*>, std::__1::__wrap_iter<CLI::Option const* const*>) in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::vector<CLI::App const*, std::__1::allocator<CLI::App const*> >::erase(std::__1::__wrap_iter<CLI::App const* const*>, std::__1::__wrap_iter<CLI::App const* const*>) in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::erase(std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>) in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::vector<std::__1::unique_ptr<CLI::Option, std::__1::default_delete<CLI::Option> >, std::__1::allocator<std::__1::unique_ptr<CLI::Option, std::__1::default_delete<CLI::Option> > > >::erase(std::__1::__wrap_iter<std::__1::unique_ptr<CLI::Option, std::__1::default_delete<CLI::Option> > const*>) in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::erase(std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*>, std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*>) in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::vector<CLI::App*, std::__1::allocator<CLI::App*> >::erase(std::__1::__wrap_iter<CLI::App* const*>, std::__1::__wrap_iter<CLI::App* const*>) in libPugsUtils.a(PugsUtils.cpp.o)
      std::__1::enable_if<(__is_forward_iterator<std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> >::value) && (is_constructible<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::iterator_traits<std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> >::reference>::value), std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> >::type std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::insert<std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*> >(std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*>, std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>, std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>) in libPugsUtils.a(PugsUtils.cpp.o)
      ...

However, if I use true GCC 9.2, there is no error.

Edited by Pascal Havé