2009-02-23 6 views
5

Estoy redireccionando la salida del compilador de g ++ (tanto stderr como stdout) a un archivo en linux. Pero está creando un archivo vacío.compilador de linux g ++ redirige stderr y stdout crea el archivo vacío

He leído en alguna otra publicación que stdout no se enjuaga después de cada línea. Eso está bien, pero ¿qué hay de stderr? En mi caso, hay errores de compilación que ejecutan varias pantallas. Entonces, estoy interesado en la salida de stderr. No hay salida stdout creada.

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I 
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp 2> output 

El comando anterior crea un archivo vacío llamado "salida". El siguiente comando informa de un comando inválido nulo.

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I  
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp &> output 
Invalid null command. 
+0

¿Qué shell estás usando? ¿Y se genera salida cuando no se hace la redirección? –

+0

Estoy usando masilla para conectarme a un linux box que usa un shell bash El motivo principal de la redirección es ver los errores de compilación que se ejecutan en varias pantallas. –

Respuesta

11

Uno de sus comentarios delata que usted no está usando bash . Estás usando csh o tcsh. En ese caso, puede redirigir todas las salidas (incluyendo el error estándar) de esta manera:

 
g++ -c Algorithms.cpp >& output 

Para más sintaxis de redirección CSH, tengo a useful link marcada. Tenga en cuenta que la sintaxis de redirección csh no es tan fluida como la sintaxis bash. Puede hacer más en bash que en csh.

+0

lo siento por engañarlo. Eso fue solo por mi ignorancia. Muchas gracias. –

+1

Estoy usando 'bash' y esta sintaxis todavía es necesaria. –

0

"No hay noticias son buenas noticias": ¿su comando incluso produce alguna salida? Cuando no hay errores, ¡g ++ no imprime nada!

+0

me preocupa stderr. Sé que la compilación de un archivo no produce ningún resultado :) –

+0

Oh, tienes razón, me lo perdí. ¡Lo siento! –

3

Usted puede tratar esto:

sh/bash/versión zsh:

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ \ 
     -I ~/cplusplus/niVxWorksDeliver/TEES/ \ 
     Algorithms.cpp > output 2>&1 

csh versión:

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ \ 
     -I ~/cplusplus/niVxWorksDeliver/TEES/ \ 
     Algorithms.cpp >& output 
+0

g ++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/-I ~/cplusplus/niVxWorksDeliver/TEES/Algorithms.cpp> salida 2> & 1 Redirección de salida ambigua. –

+0

Tu caparazón no es bash. Ese es un mensaje de error csh. –

Cuestiones relacionadas