2010-08-13 18 views
22

Normalmente, GCC recibe instrucciones para enviar a un archivo a través del interruptor -o. Si esto no se proporciona, parece decidir sobre un nombre apropiado y salida a eso. ¿Cómo hago que GCC escriba su salida generada en stdout?¿Cómo hacer que la salida de GCC sea stdout?

+1

dónde vas a la tubería a? – dreamlax

+1

Como implica la respuesta de ergosys, algunas invocaciones de GCC producirán un archivo de ensamblaje, no binario. ¡En mi caso, quiero verlo! –

Respuesta

27
gcc -o /dev/stdout foo.c 

Tenga en cuenta que /dev/stdout se define como un enlace simbólico: /dev/stdout -> /proc/self/fd/1.

+0

Ahora, ¿hay una solución similar para Windows? ¿O tendré que hackearlo para soluciones multiplataforma? –

+0

@Kevin, supongo salvaje, intente '-o CON'? Ha pasado un tiempo desde que hice Windows. :/ – sarnold

+1

** Una palabra de advertencia sobre Cygwin **: 'gcc -o/dev/stdout foo.c' no genera nada, pero' gcc -c -o/dev/stdout foo.c' ** elimina '/ dev/stdout'! ** – Matt

0

Um, ¿qué vas a hacer con un archivo de objeto binario descargado a stdout? de todos modos, algunos programas aceptan el carácter '-' (solo menos, sin comillas) como reemplazo de stdout. Si estás en Linux, puede hacerlo -o /dev/fd/1

+9

Se pueden hacer muchas cosas con él. – Qix

22

Usted puede utilizar -O-, por ejemplo, para imprimir una lista de montaje:

gcc -S -o- in.c 
+4

Es importante tener en cuenta que esto solo funciona para algunas salidas. Por ejemplo 'gcc -o- test.c' crea un ejecutable llamado' -'. –

Cuestiones relacionadas