2011-05-26 16 views
5

¿Es posible vincular automáticamente una biblioteca estática de C++ en Visual Studio 2008? O bien, ¿hay alguna mejora para usar desde el enfoque estándar?Especifique automáticamente .LIB en el encabezado de Visual Studio 2008 C++

Estoy desarrollando un conjunto de librerías C++ y vincularlas/probarlas es bastante doloroso. El enfoque habitual es especificar los archivos .lib en los clientes de prueba, pero ahora la lista ha crecido bastante (mis propias libs, opencv, boost y otras) y siempre me falta algo cuando cambio entre los modos de depuración y liberación. , gpu y non-gpu, etc. Cuando abro el enlazador en las propiedades del proyecto, la lista se desplaza por un tiempo.

Tenía la esperanza de que pudiera especificar automáticamente que si un cliente # incluye algo que el proyecto también debería vincular a un .lib especificado (depurar/liberar). ¿Es esto posible o existe un enfoque alternativo que ayudará a administrar el vínculo con la mínima interacción del usuario?

Respuesta

5

Use #pragma comment(lib, "name_of_the_library.lib"). Otras opciones útiles para #pragma comment se pueden encontrar en el MSDN page.

Con respecto a la configuración de depuración frente a versión: generalmente se utiliza una macro del preprocesador _DEBUG para distinguir. El encabezado de Visual C++ ciertamente lo usa para el mismo propósito que usted desea; p.ej. esto es de VC++ 2010 use_ansi.h archivo:

#ifdef _DEBUG 
#pragma comment(lib,"msvcprtd") 
#else /* _DEBUG */ 
#pragma comment(lib,"msvcprt") 
#endif /* _DEBUG */ 
+0

http://support.microsoft.com/kb/153901 – Steve

+1

Si bien puede no parecer a primera vista, esto es exactamente lo que está buscando, @ Steve. –

+1

@Steve, ese artículo de KB se refiere a Visual C++ 4.0, algo que no querría usar hoy en día :) –

Cuestiones relacionadas