REDHAWK IDE настаивает на расширении переменных среды при создании Makefile.am.ide
файл. Например, предположим, что $SRC_ROOT
является /srcpath
и я добавляю путь включения в Path and Symbols
окно раздела C / C ++ моего проекта, как показано ниже:
${env_var:SRC_ROOT}/include
сгенерированный Makefile.am.ide
файл содержит:
rehawk_INCLUDES_auto = -I/srcpath/include
когда я действительно хочу это:
rehawk_INCLUDES_auto = -I$(SRC_ROOT)/include
Это важно, потому что этот файл используется другими членами команды, которые имеют разные значения для $SRC_ROOT
, В настоящее время мы должны поместить путь включения в Makefile.am
, но затем IDE не видит файлы заголовков в каталоге и видит ошибки для кода, указанного в отсутствующих заголовках.
Есть ли в любом случае, чтобы получить RHIDE, чтобы не расширять переменные среды, когда он генерирует Makefile.am.ide
?
Не совсем то, что вы ищете, но вы всегда можете отключить автоматическое обновление файла Makefile.am.ide, отключив конструктор автоматического включения REDHAWK C ++. Это в свойствах проектов в разделе «Строители».
Это позволит вам добавить в раздел «Пути и символы» в Eclipse, при этом сборщик автоматического включения не выберет его и не добавит в свой Makefile.am.ide.
Если вы решите отключить этот компоновщик, вам нужно будет самостоятельно управлять добавлением новых исходных файлов.
Ответ Юсефа не плохой, но я нашел другой способ обойти эту проблему. В Makefile.am
переопределить redhawk_INCLUDES_auto
Значение, чтобы быть тем, что я, что это должно быть:
include $(srcdir)/Makefile.am.ide
#Override the value from Makefile.am.ide that may be wrong!
override redhawk_INCLUDES_auto = -I$(SRC_ROOT)/include
Для этого требуется обновить любые пользовательские каталоги включения как в среде IDE, так и в Makefile.am
файл, но управление исходными файлами все еще происходит автоматически.
Это все еще имеет проблему, что Makefile.am.ide
Содержимое файла будет другим для других разработчиков, что усложняет контроль версий. Поэтому я не считаю это полным ответом на проблему.