Boost linking, Visual Studio y control de versiones

Estoy usando Visual Studio 2008 y escribiendo algunas cosas en C ++. Estoy usando una biblioteca de Boost (que no es solo encabezado).

Por lo tanto, vincularlo a Boost requiere que se agregue el directory a los binarys de Boost a la configuration de "routes de enlace adicionales" del proyecto.

Sin embargo, ¿esto no entra en conflicto con el control de la fuente? Si controlo los files del proyecto, ¿no se includeía también en ellos la ruta absoluta a las bibliotecas Boost libs en mi computadora ?

Obviamente no quiero que esto suceda, entonces ¿qué debo hacer? Solo agregar el directory de Boost a "Directorios / Bibliotecas de Visual C ++" no funciona.

Agregar las routes de Boost a "Directorios de Visual C ++" debería funcionar. Debería agregar include path <Full path here>\boost_1_39_0 (sin boost al final)
y la ruta de la biblioteca <Full path here>\boost_1_39_0\bin.v2\lib (bin.v2 es un dir de etapa que podría ser diferente en su caso).

Personalmente, almaceno las fonts de impulso en mi control de fuente y uso las routes relativas en la configuration del proyecto.

Usamos un repository que contiene bibliotecas de terceros, luego usamos svn:externals para verificar las partes requeridas en el directory base del proyecto, finalmente usamos routes relativas para include directorys adicionales y de biblioteca en el file de proyecto. Funciona bien, la única desventaja es que puede terminar con varias copys de refuerzo en su disco duro. Usando uniones (la versión de Windows de enlaces simbólicos solo para directorys, funciona al less desde Win2k, no está seguro acerca de NT) puede deshacerse del espacio desperdiciado.

Ponemos todos los encabezados y bibliotecas de terceros utilizados por un proyecto en el tree de proyecto en control de fuente. Esto significa que rastreamos la versión de las bibliotecas con la fuente.

Luego hacemos reference a los directorys de inclusión y fuente en las properties del proyecto. No usamos los directorys de Visual C ++ ya que esto depende demasiado de la location de los files en los diferentes sistemas de desarrollo y tampoco se puede rastrear las versiones de las bibliotecas.

La única exception a esto sería la plataforma sdk cuando se desarrolla con vc6.

Plug desvergonzado: ahora administramos nuestra configuration de proyecto de vc con CMake y esto facilita mucho las cosas, especialmente para proyectos grandes.

Usted le dice a VS sobre Boost por computadora, no por moda. Al igual que Directx y otras bibliotecas que no son específicas de un proyecto. Creemos que es razonable suponer que el impulso se usa en más de un proyecto.

No rastreamos el origen de la biblioteca externa en nuestro SCM de proyecto a less que tengamos una relación estrecha con los detalles de implementación (parcheándolo o lo que sea). Para boost, directx, windows sdk, solo le pedimos que ejecute el instalador respectivo y configure los VC++ Directories cuando configure su entorno de desarrollo.

Uso la variable de entorno BOOST_ROOT para algunas cosas, y funciona bien. Tienes que crearlo manualmente, y luego establecer las routes en los files del proyecto como " $(BOOST_ROOT)\include " y " $(BOOST_ROOT)\lib " (o lo que sea que use tu layout). Luego, todos deben configurar BOOST_ROOT en sus máquinas para que apunten a su installation de Boost.