В настоящее время я пытаюсь заставить программу компилировать в системе, которую я не контролирую.
Моя проблема заключается в том, что каталоги include выглядят следующим образом:
/usr/include:
gmpxx.h gmp.h
/usr/local/include:
gmp.h
В моем файле cpp я использую
#include <gmpxx.h>
, и он находит правильный файл в / usr / include
, однако когда gmpxx.h включает gmp.h, он извлекает его из / usr / local / include
, что прерывает сборку.
Прямо сейчас я вижу 3 очень уродливых решения проблемы
В моем файле cpp добавьте #include
Наличие абсолютного пути включения довольно уродливо и непереносимый, и я думаю, что такие вещи должны принадлежать Makefile, а не источнику.
добавить флаг -nostdinc
в мой make-файл и вручную указать пути включения
создать локальные символические ссылки на библиотеки, которые мне действительно нужны, а затем выполнить локальное включение ( #include "gmp.h"
)
Есть ли лучшее решение, которое мне не хватает?