Я знаю, что на этот пост уже давно дан ответ, но я просто хочу дать другую точку зрения, которая должна помочь кому-то еще.Моя проблема была с QT и mingw, всегда, когда я собирал с boost или некоторыми другими библиотеками, использующими cmath и cstdlib, я получал эту ошибку.Через некоторое время я был очень раздражен этой ошибкой и решил немного изучить эти два файла.Я полностью согласен с fefe и его ответом, но это может решить проблемы, только если вы используете это в своей программе или библиотеке, и вы с самого начала знаете, в чем проблема, и это не было моей проблемой.
Есливам действительно нужно включить оба файла одновременно (вам нужны system, malloc ... и все математические функции) быстрое и грязное решение - открыть заголовок и на 106 строке (на моем компьютере) вы увидите что-то вроде этого:
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
using ::div_t;
using ::ldiv_t;
using ::abort;
//using ::abs;
using ::atexit;
using ::atof;
using ::atoi;
using ::atol;
using ::bsearch;
using ::calloc;
.
.
.
Из приведенного выше кода вы можете видеть, что cstdlib имеет функцию abs в пространстве имен std, и вам необходимо закомментировать эту строку, чтобы разрешить использование функции cmath abs и избавиться от этой неприятной ошибки.
Я надеюсь, что это кому-то поможет, и я прошу прощения за такой длинный пост.