На моей машине (не Mac, но результаты должны быть переведены), …include-fixed/limits.h
содержит следующее
#ifdef _GCC_NEXT_LIMITS_H
#include_next <limits.h> /* recurse down to the real one */
#endif
И "реальный" в моем случае выглядит как /usr/include/limits.h
:
$ <<< '#include <limits.h>' gcc -E -xc - |grep limits
# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 1 3 4
# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 3 4
# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/syslimits.h" 1 3 4
# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 1 3 4
# 194 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 26 "/usr/include/limits.h" 3 4
# 27 "/usr/include/limits.h" 2 3 4
# 183 "/usr/include/limits.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 184 "/usr/include/limits.h" 2 3 4
# 188 "/usr/include/limits.h" 2 3 4
# 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 2 3 4
# 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/syslimits.h" 2 3 4
# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 2 3 4
И мой менеджер пакетов говорит, что
/usr/include/limits.h is owned by glibc 2.29-1
.
И у вас определенно есть библиотека libc для Mac (не знаю, как она называется) вместо Glibc. Возможно, проблема в том, что libc в вашей системе намного новее, чем тот, с которым был настроен ваш gcc (gcc 4.7 сейчас довольно старый), и поэтому он ожидает, что в новой версии заголовок будет перемещен в другое место.
Это мое предположение. Проверьте свою систему, чтобы узнать. Кроме того, вы можете попробовать более новую сборку gcc, если это возможно.