¿Se puede usar el preprocesador de C para saber si existe un archivo?

Tengo una base de código muy grande (leída: miles de módulos) que tiene código compartido en numerosos proyectos que se ejecutan en diferentes sistemas operativos con diferentes compiladores de C ++. No hace falta decir que mantener el proceso de construcción puede ser una tarea difícil.

Hay varios lugares en la base de código donde se limpiaría el código sustancialmente si solo hubiera una manera de hacer que el preprocesador ignore ciertos#includes Si el archivo no existía en la carpeta actual. ¿Alguien sabe una manera de lograr eso?

Actualmente utilizamos un#ifdef alrededor de#include en el archivo compartido, con un segundo archivo específico del proyecto que # define si o no el#include Existe en el proyecto. Esto funciona, pero es feo. Las personas a menudo se olvidan de actualizar correctamente las definiciones cuando agregan o eliminan archivos del proyecto. He contemplado escribir una herramienta de construcción previa para mantener este archivo actualizado, pero si hay una manera independiente de la plataforma de hacer esto con el preprocesador, preferiría hacerlo de esa manera. ¿Algunas ideas?

Respuestas a la pregunta(9)

Su respuesta a la pregunta