2011-11-25 19 views
10

autoconf/automake se esfuerzan por apoyar a los compiladores de C antiguas que no entienden el uso simultáneo de los -c y -o opciones (crear un archivo de objeto con este nombre ) . Hay AM_PROG_CC_C_O y un script de envoltura especial, y el manual de Automake warns you to use them si desea usar el modo subdir-objects.Unix compiladores de C++ que no entienden -o -C

No no es un AM_PROG_CXX_C_O. No es difícil modificar AM_PROG_CC_C_O para probar el compilador C++, pero me pregunto si es necesario. ¿Hubo alguna vez un compilador Unix C++ (¿Cfront, quizás?) Que no admitía el uso simultáneo de -c y -o? Vamos a eso, ¿cuántos años tienen los compiladores C que no lo admiten? ¿Hubo alguna vez un compilador compatible con C89 con este problema, por ejemplo?

+0

+1: Definitivamente _son_ tales (C) compiladores. Si hay compiladores actuales (compatibles) sin esa facilidad es una pregunta importante. Si todavía hay versiones antiguas de dichos compiladores en uso es más difícil de evaluar; el software tiene una tendencia a ser utilizado mucho después de su fecha 'mejor antes de finalizar'. –

+3

El problema con "-c -o" es que -c hace que el compilador genere varias salidas, en cuyo punto la opción -o se vuelve absurda. –

+0

@SimonRichter Ese es un punto interesante y, sin embargo, el último compilador que * I * personalmente sabía que no hizo algo sensato con '-c -o' es'/bin/cc' de K & R de Solaris, que no es Incluso hay algo con lo que puedes empezar y arrancarte un compilador más nuevo. – zwol

Respuesta

1

Hay compiladores, principalmente los destinados a la industria integrada, donde debe compilar y vincular manualmente. En esos casos, la opción -c no tiene sentido.

Dado que Linux se usa cada vez más en sistemas integrados, definitivamente debe tenerlos en cuenta.

+0

No sé a qué te refieres con "compilar manualmente y vincular". ¿Puede señalarme un ejemplo específico de un compilador con la propiedad en la que está pensando, idealmente a su documentación? – zwol

+0

Además, permítanme enfatizar que esta es * no * una pregunta específica de Linux que estoy preguntando aquí. Lo veo como una cuestión de interés histórico. – zwol

+0

Por "manual" me refiero a que emite un comando para compilar en un archivo de objeto y otro para hacer el enlace. No hay envoltorio que compila y vincula, por lo tanto, no tiene sentido tener una opción '-c'. Un ejemplo concreto son los compiladores de 'IAR Systems', que forman parte de' IAR Embedded Workbench'. No estoy seguro de que los manuales estén en línea, pero puede descargar la llamada versión de Kickstart para obtenerlos. – Lindydancer

Cuestiones relacionadas