2009-10-30 14 views
11

Tengo que portar la construcción de una DLL desde la construcción en Visual Studio a otro sistema de compilación. La solución DLL no fue hecha por mí y tiene muchos modificadores de línea de comandos modificados, etc. He copiado las opciones del compilador/enlazador de Visual Studio¿Cómo puedo obtener la línea de comando exacta del compilador desde Visual Studio?

Propiedades del proyecto -> Propiedades de configuración -> C/C++ -> Comando línea Propiedades del proyecto -> Config Propiedades -> Enlazador -> línea de comandos

Sin embargo, cuando construyo la DLL de mi otra herramienta de construcción (y también he intentado un archivo por lotes sencillo) la DLL es un tamaño ligeramente diferente y ocasiona un bloqueo a veces cuando se usa el DLL (que el creado por vis studio no lo hace).

Así que mi pregunta es:

  1. ¿Hay una mejor manera de ver la línea de comandos exacta de lo que hay en la página vis propiedades de estudio?

  2. ¿El Vis Estudio hacer ningún tipo de magia loco más allá de lo que está sucediendo en la línea de comandos (espero que la respuesta a esto es no!) :-)

Respuesta

9

Algo a tener en cuenta es que la línea de comandos también se pueden configurar las opciones por archivo fuente, no solo por proyecto, que puede ser lo que se está perdiendo.

Una forma de ver todo lo que sucede es mirar el registro de compilación. Al final de la creación en la vista Salida, debería ver una línea como:

El registro de compilación se guardó en "ruta del archivo".

Ctrl-clic en la ruta del archivo en la vista de salida y cargará el archivo de registro, y debería ver todas las líneas de comando para cada archivo.

Actualización:

Esta respuesta fue para Visual Studio 2008. Ya no se consigue el enlace en la ventana de resultados en las últimas versiones de Visual Studio. En su lugar, debe navegar hasta el directorio de compilación de su proyecto para ver el archivo de registro. Ver aquí:

https://msdn.microsoft.com/en-us/library/jj651643.aspx

En realidad ese enlace es un poco mal. El archivo de registro tiene una extensión .log en lugar de .txt.

+0

¡Gracias por esto! Calculé mi problema del registro de compilación. Tenía todos los modificadores de compilación/enlace correctos, pero no había agregado el manifiesto a la DLL que hacía que fallara el enlace en tiempo de ejecución. Soy de origen Linux, por lo que no estaba al tanto de las DLL ni de sus complejidades. – Benj

+0

No lo veo. Todo lo que obtengo es un enlace al exe que se crea, sin la parte de "compilar el registro de compilación en la ruta del archivo". –

+0

como dice @BryceSandlund, el resultado de compilación no siempre proporciona la ruta del archivo de registro (dudo que incluso escriba un registro). Sin embargo, puede tener una salida verbosa/debug en su UI: menú Herramientas> Opciones; Proyectos y soluciones> Compilar y ejecutar> Nivel de detalle de la salida de compilación del proyecto MSBuild. Personalmente recomiendo ir con un registro "detallado", por lo general debería darle la información deseada. –

Cuestiones relacionadas