Respuestas:
En el proyecto en el que desea #incluir el archivo de encabezado de otro proyecto, deberá agregar la ruta del archivo de encabezado en la sección Directorios de inclusión adicionales en la configuración del proyecto.
Para acceder a la configuración del proyecto:
Para incluir el archivo de encabezado , simplemente escriba lo siguiente en su código:
#include "filename.h"
Tenga en cuenta que no es necesario que especifique la ruta aquí, porque ya incluye el directorio en los directorios de inclusión adicionales, por lo que Visual Studio sabrá dónde buscarlo.
Si no desea agregar cada ubicación de archivo de encabezado en la configuración del proyecto, puede incluir un directorio hasta un punto, y luego #incluir relativo a ese punto:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
Si usa bibliotecas estáticas (es decir, archivo .lib), también deberá agregar la biblioteca a la entrada del vinculador, de modo que en el momento del enlace los símbolos se puedan vincular (de lo contrario, obtendrá un símbolo sin resolver):
#include "proj2\include.h"
. Tener varios proyectos por solución parece muy dirigido a los lenguajes NET, ya que se usan de manera muy diferente. Sin embargo, para encontrar una excelente manera de superar esto para los proyectos de C ++.
#include
no tiene nada que ver con los proyectos, solo le dice al preprocesador "ponga aquí el contenido del archivo de encabezado". Si le da una ruta que apunte a la ubicación correcta (puede ser una ruta relativa, como ../your_file.h), se incluirá correctamente.
Sin embargo, tendrá que aprender sobre las bibliotecas (bibliotecas estáticas / dinámicas) para hacer que dichos proyectos se vinculen correctamente, pero esa es otra cuestión.
Dado que ambos proyectos están bajo la misma solución, hay una forma más sencilla de incluir archivos y enlazador como se describe en https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp- proyectos? view = vs-2019 :
#include "../libProject/libHeader.h"
).Debe establecer la ruta a los encabezados en las propiedades del proyecto para que el compilador busque allí cuando intente encontrar el (los) archivo (s) de encabezado. No recuerdo la ubicación exacta, pero mire las propiedades del proyecto y debería verlo.
Intente evitar referencias de ruta completas en la directiva #include, ya sean absolutas o relativas. En su lugar, agregue la ubicación de la carpeta de inclusión del otro proyecto en la configuración de su proyecto. Utilice solo subcarpetas en las referencias de ruta cuando sea necesario. De esa manera, es más fácil mover las cosas sin tener que actualizar su código.
Ampliando la respuesta de @ Benav, mi enfoque preferido es:
$(SolutionDir)
a los directorios de inclusión adicionalesAhora puede incluir encabezados de sus proyectos referenciados así:
#include "OtherProject/Header.h"
Notas:
#include
s, pero establece las dependencias de compilación correctas, que probablemente desee.