Спасибо за ответ, Ник. Я мог бы использовать относительный путь к a.h
внутри b.h
и сохранить дополнительные каталоги include-внутри proj_b и остальные 100 проектов.
На самом деле, в моем случае существует несколько разновидностей proj_a: 'proj_a1, proj_a2 и т. Д., Каждый из которых имеет отдельный a.h. Остальные 100 проектов решают, какой вариант включить, имея соответствующий каталог Additional-include-в своих настройках. Это было проблемой: всякий раз, когда нам нужно обновить версии proj_a, нужно будет изменить все include-dirs.
Я столкнулся с этой проблемой, удалив все include-каталоги и определив PROJ_A1, PROJ_A2 и т. Д. В остальных проектах. b.h
больше не #include a.h
, вместо этого он включает заголовочный файл a_redirector.h (с относительным путем). Внутри a_redirector.h у нас есть все #ifdef PROJ_A1
, #ifdef PROJ_A2
и т. Д., Которые смотрят на включение конкретного файла a.h
(относительные пути также здесь) в зависимости от того, что было определено.
Теперь, когда нам нужно обновить версии proj_a, мне нужно всего лишь изменить a_redirector.h
, чтобы он указывал на все новые a.h, таким образом имея единую точку контроля по сравнению с более ранней архитектурой.