Tengo una biblioteca y una aplicación de consola que utiliza una biblioteca. La biblioteca tiene una carpeta con el código fuente y los archivos de cabecera.

Mi proyecto es en un niño/interior del directorio, pero que el directorio de la biblioteca que desea incluir en un padre/directorio superior.

Mi directorio de proyecto:

H:\Gmail_04\gsasl-1.0\lib\libgsaslMain

Incluye los archivos están aquí:

H:\Gmail_04\gsasl-1.0\src

¿Cómo puedo utilizar rutas relativas al directorio del proyecto, para incluir carpetas que están en un padre/directorio superior?

InformationsquelleAutor Ali Ahmed | 2011-08-01

4 Comentarios

  1. 40

    Si me sale bien, usted necesita ..\..\src

    • He intentado esto…pero dice que no puede encontrar incluir el archivo que se encuentra en esta carpeta. pero cuando le doy la ruta de acceso completa que funciona bien.
    • Tal vez el directorio del proyecto no es lo que piensas? tal vez es un paso más profundo?
    • si este es el caso, entonces ¿qué debo hacer? cuál debe ser la ruta de acceso si tienes razón acerca de directorio del proyecto.?
    • ..\..\..\src cada .. va un directorio de vuelta.
  2. 141

    Lugar de utilizar rutas relativas, también puede utilizar las macros predefinidas de VS para lograr esto.

    $(ProjectDir) puntos en el directorio de la .vcproj archivo, $(SolutionDir) es el directorio de la .sln archivo.

    Se obtiene una lista de macros disponibles cuando se abre un proyecto, vaya

    Propiedades → Propiedades de Configuración → C/C++ → General

    y de golpe los tres puntos:

    Cómo definir las rutas relativas en el Proyecto de Visual Studio?

    En el próximo diálogo, golpeó Macros para ver las macros que están predefinidos por el Estudio (consultar MSDN por su significado):

    Cómo definir las rutas relativas en el Proyecto de Visual Studio?

    Se pueden usar las Macros escribiendo $(MACRO_NAME) (nota de la $ y la ronda paréntesis).

    • Tenga en cuenta que estos son entre paréntesis ( ), no curvas llaves { }. He sido erróneamente tratando de utilizar macros con el último, por quince minutos.
    • gracias por la sugerencia. He incorporado a tu comentario en mi respuesta.
    • Su tema es tan oscuro
    • Él es claramente con el lado oscuro de la fuerza, que es la razón.
  3. 22

    He utilizado una sintaxis como esta:

    $(ProjectDir)..\headers

    o

    ..\headers

    Como otros han señalado, el directorio de partida es el archivo de proyecto está en(vcproj o vcxproj), no donde el código principal se encuentra.

    • Parece que funciona muy bien en VS2013 Actualización 3 de nuevo, no estoy seguro acerca de U2 y U1.
    • No debería ($ProjectDir) se $(ProjectDir)?
    • Bonita respuesta. Probado en Microsoft Visual Studio Comunidad de 2017 .
    • Haga clic en «Aplicar» y, a continuación, compruebe en el «Linker->Línea de Comandos’ que la genera rutas absolutas son correctos.
    • No funciona con unidades de red asignadas, entonces parece que usted tiene que codificar el camino!
    • Para las unidades de red que usted tiene que mover el directorio en la carpeta del proyecto y el uso, por ejemplo. $(SolutionDir)/ruta/a/incluye

  4. 5

    Por defecto, todas las rutas se definen será relativo. La pregunta es: ¿en relación con qué? Hay varias opciones:

    1. Especificar un archivo o una ruta de acceso con nada ante él. Por ejemplo: «mylib.lib«. En ese caso, el archivo será buscado en el Directorio de Salida.
    2. Si agrega «..\», la ruta será calculada a partir de la ruta real donde el .archivo sln reside.

    Por favor, tenga en cuenta que después de una macro, tales como $(SolutionDir) no hay ninguna necesidad de añadir una barra invertida «\». Sólo uso $(SolutionDir)mylibdir\mylib.lib.
    En caso de que usted simplemente no puede conseguir que funcione, abra el archivo de proyecto externamente desde el Bloc de notas y comprobarlo.

Dejar respuesta

Please enter your comment!
Please enter your name here