2009-02-23 4 views
5

Я перенаправляю выход компилятора g ++ (как stderr, так и stdout) в файл на linux. Но он создает пустой файл.linux g ++ компилятор redirect stderr и stdout создает пустой файл

В другой записи я читал, что stdout не очищается после каждой строки. Это нормально, но как насчет stderr. В моем случае есть ошибки компиляции с несколькими экранами. Итак, меня интересует вывод stderr. Создается выходной вывод stdout.

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

Вышеупомянутая команда создает пустой файл с именем «output». Следующая команда сообщает о недопустимой команде null.

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

Какую оболочку вы используете? И выводится ли, когда вы не выполняете перенаправление? –

+0

Я использую шпатлевку для подключения к коробке linux, которая использует оболочку bash. Основная причина перенаправления - увидеть ошибки компиляции, которые проходят через несколько экранов. – 2009-02-23 17:24:45

ответ

11

Один из ваших комментариев выдает, что вы не используете Баш , Вы используете csh или tcsh. В этом случае, вы можете перенаправить вывод (включая стандартную ошибку) следующим образом:

 
g++ -c Algorithms.cpp >& output 

Для получения дополнительной синтаксисе CSH переназначения, я a useful link закладкой. Обратите внимание, что синтаксис переадресации csh не так беден, как синтаксис bash. Вы можете сделать больше в bash, чем вы можете в csh.

+0

Прошу прощения за ввод в заблуждение. Это было только из-за моего невежества. Большое спасибо. – 2009-02-23 22:12:23

+1

Я использую 'bash', и этот синтаксис по-прежнему необходим. –

0

«Нет новостей - это хорошая новость» - ваша команда даже производит какой-либо вывод? Когда ошибок нет, g ++ ничего не распечатает!

+0

Я беспокоюсь о stderr. я знаю, что компиляция файла не производит никакого вывода :) – 2009-02-23 17:12:22

+0

О, вы правы, я пропустил это. Сожалею! –

3

Вы можете попробовать это:

ш/Баш/версия ЗШ:

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

CSH или Tcsh версия:

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> output 2> & 1 Неоднозначное перенаправление вывода. – 2009-02-23 17:14:13

+0

Ваша оболочка не bash. Это сообщение об ошибке csh. –

Смежные вопросы