2011-11-12 9 views
11

Estoy intentando construir un proyecto con otro proyecto. Hay muchas librerías allí y no estoy seguro de dónde están presentes los símbolos no referenciados necesarios.En el estudio visual, cómo incluir todas las .libs en una carpeta

¿Existe alguna manera de incluir todos los archivos .lib durante la compilación?

He dado el directorio lib como una entrada adicional al vinculador, sin embargo, solicita archivos individuales .lib para ser incluidos. ¿Hay una opción para decir incluir todos los .lib s en esta carpeta?

Respuesta

3

yo sepa no hay ninguna manera de hacerlo: las opciones son a

  • incluyen cada uno lib en las Linker-> input-> Dependencias adicionales

  • incluyen bibliotecas a través de directiva pragma en la fuente es decir, presentar añadir

pragma comment (lib, "some_lib.lib")

  • si los proyectos son parte de la solución, se puede seleccionar como "Dependencias del proyecto"

La forma más sencilla de hacerlo es utilizar el pragma ya que sólo tiene que hacerlo una vez para depuración y liberación. Por ejemplo, podría hacer una lista de directorios de su directorio lib y luego copiar y pasar el resto de la directiva a su archivo (s) de origen.

Además, para obtener una lista de símbolos de una biblioteca estática, puede ejecutar la herramienta dumpbin en los archivos lib (AFAIR con la opción/ALL).

+0

¿Ha habido algún cambio en las versiones recientes de Visual Studio?Además, ¿no debería ser posible escribir un script de precompilación para escanear la carpeta? – danijar

+0

Estoy usando VS2015, y pude acceder a Linker-> Input-> Additional Dependencies y agregar [folder] \ *. Lib y hacer que funcione para mí hoy. – RomSteady

0

Esto generará un archivo con todos los archivos .lib enumerados. Puede copiar y pegar esto o modificarlo según sus necesidades.

Guardar como lote.

for %%f in (*.lib) DO echo|set /p=%%~f >> alllibs.txt 
2

Usted sólo debe ser capaz de escribir "SomeFolder/*. Lib", donde se tiene que especificar las bibliotecas para enlazar con

11

respuesta de BigD que es correcto.

El lugar que en realidad ello, en VS 2012 al menos, es haciendo clic derecho en el proyecto, a continuación, ir:

Propiedades> Propiedades de configuración> Enlazador> línea de comandos> Opciones adicionales

En ese cuadro, usted acaba de escribir:

"[libFolder]\*.lib" 

puede tener varias ubicaciones mediante la separación de los lugares con un espacio, como tal:

"[libFolder1]\*.lib" "[libFolder2]\*.lib" 
+0

Esto fue mucho más fácil que agregarlos todos individualmente. No estoy seguro si incluí libs que no necesito sin embargo. +1 por ahorrarme algo de tiempo mientras hackeo. –

+0

También puede agregar/VERBOSE: UNUSEDLIBS a la línea para obtener cualquier biblioteca que no se haya utilizado. –

Cuestiones relacionadas