Удалите gmp.h из / usr / local / include или выясните, почему у вас есть дистрибутив программного обеспечения, который хочет иметь gmp.h в / usr / local / include, и удалите дистрибутив.Я думаю, что проблема вызвана тем, что у вас по какой-то причине два конфликтующих набора заголовочных файлов для GMP.Если у вас есть стандартная установка файлов разработки GMP в вашей системе (/ usr / include / ...), не должно быть причины иметь другой набор заголовков в /usr/local/include/.
Нет другого способа исправить это, потому что вы должны включить gmpxx.h, используя угловые скобки
#include <gmpxx.h>
, как и вы.Теперь gmpxx.h включает в себя gmp.h с использованием угловых скобок, и в вашей системе / usr / local / include имеет приоритет над / usr / include, что имеет смысл.
Поэтому я бы порекомендовал вамвыясните, почему есть два gmp.h и уберите поддельный.В настройках заголовочного файла есть что-то подозрительное.
Вы не можете легко переставить / usr / include и / usr / local / include, потому что они считаются системными каталогами включения, и если вы пытаетесь использовать -I на них, GCC будет игнорировать эту опцию.