Pregunta

Mi estructura de archivos física para un proyecto que tengo es algo como:

  • carpeta de origen
  • Motor
    • Carpeta1
    • Carpeta2

etc.

Tengo algunos archivos en 'Fuente', algunos en 'Motor', algunos en 'Motor / Carpeta1', etc.

En mi proyecto, se han ido todos Configuraciones-> Fuente directorios e incluido Fuente, motor, motor / Carpeta2, etc. Sin embargo, sigo teniendo errores que no puede encontrar archivos cuando intento para incluir "foo.h" o cualquiera que sea desde una carpeta diferente. ¿Hay una manera de hacer que por lo que no tiene que tener ../Folder1/ delante de todo?

¿Fue útil?

Solución

  

¿Hay una manera de hacerlo, así que no tiene que tener ../Folder1/ delante de todo?

Sí, la hay. La respuesta depende de varios factores y estoy seguro de que se perderá algunos.

Compruebe lo siguiente:

  • En la configuración del compilador de verificación "Incluye adicional" en "C / C ++"
  • También puedes ver en "VC ++" el valor de "Incluir directorios"
  • Compruebe la configuración de "Ignorar Incluye estándar de rutas" en "C / C ++ / preprocesador"
  • Compruebe su configuración precompilado encabezado
  • Compruebe su "#define" / "#undef" en los archivos de origen y de la configuración del compilador
  • Compruebe las hojas de propiedades de su proyecto podría estar usando o heredar

Si utiliza "foo.h" (en lugar de ) el preprocesador se verá en las carpetas específicas del proyecto y en el IDE específico carpetas pasado. Si utiliza se inicia en la norma incluyen carpetas en primer lugar, por ejemplo, aquellos que son necesarios para bibliotecas de ejecución estándar.

Cuando un archivo de usos "../foo.h" a su paso una con respecto a la ubicación del archivo que incluye el archivo. No puede haber excepciones difíciles.

Hay muchas más cosas que pueden influir en la forma en que el preprocesador encuentra su incluyen rutas de acceso. Si no está seguro de lo que el preprocesador está haciendo con un archivo en particular puede tomar la salida del preprocesador visibles por el interruptor en "preproceso a un archivo" en la configuración del preprocesador. El archivo muestra que el código fuente de un archivo después de que el preprocesador está terminado y antes de que el compilador comienza su trabajo.

Todo el asunto se vuelve mucho más fácil con más experiencia y, en particular, una estrategia clara de la estructura de carpetas / proyecto y cómo incluir archivos. Por ejemplo asegurarse de que tiene "pragma una vez" como la primera línea de comentario no incluir en cada archivo.

espero que esto te da algunas ideas para los próximos pasos. Buena suerte!

Otros consejos

Considero que esto es una práctica buena:

  • Cuando la ruta del archivo incluido no requiere el uso de "..", utilice rutas relativas
  • Cuando se requiere el uso de "..", utilice rutas absolutas (es decir, relativa a la carpeta raíz de los archivos de origen.

Para rutas absolutas para el trabajo, agregar la carpeta raíz de origen a la lista de directorios incluyen (en relación a la ubicación del archivo del proyecto).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top