У нас есть несколько проектов Eclipse (использующих систему сборки Eclipse). В большинстве проектов, если я добавлю некоторые пути включения в параметры уровня проекта («Проект» -> «Свойства» -> «Сборка C/C++» -> «Настройки» -> «Наборы инструментов» -> «Включает» -> «Включить пути»), они будут видны при компиляции всех файлов в разных подпапках. этого проекта.
Тем не менее, в одном проекте это не работает - в некоторых случаях я должен установить пути включения отдельно для каждой подпапки или даже конкретные файлы cpp, которые включают заголовки из этого пути. В противном случае, во время компиляции включенный заголовок не виден компилятору.
Мое первоначальное подозрение было связано с тем, как папки добавляются в этот проект. Мне показалось, что если тип папки - "Связанная папка" (с параметром "Местоположение" - «PROJECT_LOC ... ...»), то он наследует настройки проекта, но если его тип - "Папка", то это не так. Тем не менее, это, вероятно, не так, потому что после внесения некоторых изменений (не знаю, какие именно изменения) связанная папка также начала "жить самостоятельно" (а также для этой папки в .cproject появилась структура <folderInfo ...) файл).
Поэтому другое подозрение заключается в том, что если в папки / файлы вносятся какие-либо изменения, то его настройки разветвляются из настроек проекта и перестают наследовать настройки (или, по крайней мере, включать пути).
Может ли кто-нибудь объяснить, в чем заключается логика наследования уровня проекта для подпапок / конкретных файлов? Как правильно это настроить? И как лучше всего исправить ситуацию, когда некоторые папки наследуют настройки, а другие нет?
Мы используем:
Eclipse IDE for GNU ARM & RISC-V C/C++ Developers
Version: 2018-09 (4.9.0)
Build id: 20180930-0922