Проблемы компиляции Qt 5.8 с std::chrono

Я разрабатываю приложение Qt на Ubuntu 17.04. Раньше я использовал последнюю версию Qt (Qt 5.12.2), но мне пришлось вернуться на несколько версий к Qt 5.8.

Я смог скомпилировать с использованием Qt 5.12 без проблем, но с Qt 5.8 я получаю следующие ошибки, связанные с std::chrono:

In file included from /opt/Qt5.8.0/5.8/gcc_64/include/QtCore>/qmutex.h:48:0,
                 from /opt/Qt5.8.0/5.8/gcc_64/include/QtCore/QMutex:1,
                 ...

/usr/include/c++/6/chrono:221:6: error: macro "max" requires 2 arguments, but only 1 given
  max()
      ^
                                     ^
/usr/include/c++/6/chrono:225:6: error: macro "min" requires 2 arguments, but only 1 given
  min()
      ^
    ^~~~~~
/usr/include/c++/6/chrono:222:4: error: expected ‘}’ before ‘return’
/usr/include/c++/6/chrono:222:4: error: function definition does not declare parameters
/usr/include/c++/6/chrono:224:2: error: a storage class can only be specified for objects and functions
  static constexpr _Rep
  ^~~~~~
/usr/include/c++/6/chrono:224:19: error: expected ‘;’ before ‘_Rep’
  static constexpr _Rep
                   ^~~~
etc

Любые идеи о том, как решить эту проблему.

Это версия g++ или проблема с версией libstdc++?

Вот моя версия g++:

$ g++ --version
g++ (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Если это так, если какие-либо советы о том, что нужно очистить/удалить и установить apt-get, будут полезны.


person Ankur Shah    schedule 26.03.2019    source источник
comment
Кажется, кто-то возится с макросами max, min. Вы можете попробовать undef max и min (stackoverflow.com/questions/518517/). Можете ли вы предоставить дополнительную информацию о сборке и включенных библиотеках?   -  person jgoday    schedule 26.03.2019
comment
$ строки libstdc++.so.6 | Grep LIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_DEBUG_MESSAGE_LENGTH   -  person Ankur Shah    schedule 26.03.2019
comment
Извините за форматирование выше... Я просто искал LIBCXX в библиотеке   -  person Ankur Shah    schedule 26.03.2019
comment
Мои проблемы гораздо больше, чем макс и мин. Я не включил его сюда, но он есть во всем файле std::chrono.   -  person Ankur Shah    schedule 26.03.2019
comment
Сначала вам нужно исправить проблему с макросами min и max, а затем посмотреть, что осталось.   -  person Howard Hinnant    schedule 26.03.2019
comment
Я нашел ответ в следующем сообщении: askubuntu.com/questions/724872/   -  person Ankur Shah    schedule 27.03.2019