2009-05-22 13 views

Respuesta

8

Para ver qué es IDE, haga clic en

Herramientas | Opciones | Opciones de entorno | Compilando y corriendo | Mostrar línea de comando

Y puede verificar los mensajes del compilador.

10

La alimentación principal de la construcción de la línea de comandos del compilador de Delphi es estandarización - a identificar explícitamente las opciones (en la línea de comandos, en los archivos .cfg, etc.), y el compilador sigue las opciones proporcionadas exclusivamente. Por el contrario, el IDE tiene muchos otros comportamientos que no son claros y explícitos; por ejemplo, puede buscar rutas de biblioteca no especificadas en las Opciones del proyecto. Supongo que algo está sucediendo en la compilación IDE de la que no eres del todo consciente, y esta es la razón por la que las compilaciones estandarizadas se realizan desde la línea de comandos.

0

Este comportamiento ha existido en todas las versiones de Delphi que he usado. (5 - 2006). No me preocuparía mucho al respecto. Cuando lo descubrí por primera vez, pasé mucho tiempo tratando de resolver la diferencia. ¿Extrañé una bandera del compilador? ¿Hay alguna discrepancia entre el IDE y las opciones compatibles del compilador de la línea de comandos?

Al final decidí que no era tan importante. Ambos produjeron consistentemente ejecutables funcionalmente equivalentes.

0

Si proporciona exactamente los mismos parámetros para el compilador de línea de comandos, los ejecutables producidos serán virtualmente idénticos.

De hecho, el IDE solo llama al compilador de la línea de comandos. Compila tu proyecto en el IDE y mira la ventana de mensajes. verá la llamada completa de dcc32.exe ...

+1

Sin embargo, ¿cómo ayuda esto al OP a hacer ese suministro? –

+0

Ayuda en la forma en que puede asegurarse de que/could/control su herramienta de compilación (Steve mencionó MSBuild en su pregunta) para compilar * exactamente * de la misma manera que lo hace desde el IDE de Delphi. –

3

La primera respuesta al uso de la línea de comandos para coherencia de construcción es correcta y es probablemente algo de lo que no debe preocuparse si confía en un sistema de compilación donde los archivos de producción siempre se obtienen de las compilaciones de la consola.

Por otro lado, si realmente quieres saber qué está pasando, debes activar los archivos de mapas (en el nivel de detalle completo) y compararlos/diferenciarlos. Si hay diferencias entre los dos, aparecerán allí. Cualquier otra diferencia que pueda existir es probablemente el resultado de una opción de línea de comunicación que sea diferente (como un indicador condicional que se puede establecer en la configuración de IDE).

+0

+1 para la recomendación de archivo de mapa. Parecen tener mucho menos enfoque ahora, pero siguen siendo muy válidos para saber qué es lo que realmente usa la aplicación. – skamradt

Cuestiones relacionadas