Можно ли использовать препроцессор C, чтобы определить, существует ли файл?

У меня есть очень большая кодовая база (читай: тысячи модулей), в которой есть код, который используется несколькими проектами, работающими в разных операционных системах с разными компиляторами C ++. Само собой разумеется, поддержание процесса сборки может быть довольно трудоемким делом.

В базе кода есть несколько мест, где он мог бы существенно очистить код, если бы только был способ заставить определенный процессор игнорировать#includes если файл нене существует в текущей папке. Кто-нибудь знает способ достичь этого?

В настоящее время мы используем#ifdef вокруг#include в общем файле со вторым файлом, специфичным для проекта, который #defines определяет,#include существует в проекте. Это работает, но этоужасно Люди часто забывают правильно обновить определения, когда они добавляют или удаляют файлы из проекта. Я'мы собирались написать инструмент для предварительной сборки, чтобы поддерживать этот файл в актуальном состоянии, но еслиЭто независимый от платформы способ сделать это с препроцессором I 'Я бы предпочел сделать это вместо этого. Есть идеи?

Ответы на вопрос(9)

Ваш ответ на вопрос