Я пытаюсь установить Ruby gem: dep_gecode
. Он компилирует некоторые расширения C, но компиляция завершается неудачно, поскольку компилятор cpp не запускается с правильно установленными включаемыми папками.
Когда я запускаю rake install
, он автоматически создает Makefile из extconf.rb
для компиляции расширений. Когда я редактирую Makefile и вручную добавляю флаг -I/usr/local/include
, компиляция расширений завершается успешно. Но когда я перезапускаю rake install
, Makefile перезаписывается, и компиляция снова заканчивается неудачей. Очевидно, мне нужно исправить extconf.rb
, но я не совсем знаю, как.
Теперь немного подробнее. Источник для dep_gecode
gem находится здесь:
https://github.com/opscode/dep-selector
Файл extconf.rb
, который необходимо изменить, находится здесь:
https://github.com/opscode/dep-selector/blob/master/ext/dep_gecode/extconf.rb
Что я хочу изменить в сгенерированном Makefile - это строка:
CPPFLAGS = -I/usr/include -I/usr/include -I/usr/local/include
вместо этого, которое генерируется в данный момент:
CPPFLAGS = -I/usr/include -I/usr/include
Как видите, путь включения /usr/local/include
отсутствует. Это стандартный путь включения в системах FreeBSD, который предполагает, что проблема может быть в Rake, а не в этом конкретном файле extconf.rb
.
Любая помощь с благодарностью.
Редактировать: я только что нашел обходной путь. Достаточно добавить эту строку в extconf.rb
, чтобы эта папка правильно отображалась в сгенерированном Makefile
:
$CPPFLAGS << "-I/usr/local/include"
Не уверен, что это будет правильным способом решения этой проблемы ...