Подтвердить что ты не робот

Как я могу записать весь вывод моего компилятора в файл?

Я создаю проект с открытым исходным кодом из исходного кода (CPP) в Linux. Это порядок:

$CFLAGS="-g Wall" CXXFLAGS="-g Wall" ../trunk/configure --prefix=/somepath/ --host=i386-pc --target=i386-pc
$make

Во время компиляции я получаю много предупреждений компилятора. Я хочу начать их исправление. Мой вопрос заключается в том, как захватить весь вывод компилятора в файл?

$make > file не выполняет работу. Это просто сохранение команды компилятора, как g++ -someoptions /asdf/xyz.cpp Мне нужен вывод этих команд.

4b9b3361

Ответ 1

Предупреждения компилятора происходят на stderr, а не stdout, поэтому вы не видите их, когда вы просто перенаправляете make в другое место. Вместо этого попробуйте, если вы используете Bash:

$ make &> results.txt

& означает "перенаправить stdout и stderr в это местоположение". Другие оболочки часто имеют похожие конструкции.

Ответ 2

В оболочке bourne:

make > my.log 2 > & 1

т.е. > перенаправляет stdout, 2 > и 1 перенаправляет stderr на то же место, что и stdout

Ответ 3

До сих пор много хороших ответов. Здесь оборка:

$ make 2>&1 | tee filetokeepitin.txt 

позволит вам следить за прокруткой вывода.

Ответ 4

Выход шел в stderr. Используйте 2>, чтобы зафиксировать это.

$make 2> file

Ответ 5

От http://www.oreillynet.com/linux/cmd/cmd.csp?path=g/gcc

Симвul > не перенаправляет стандартная ошибка. Это полезно, когда вы хотите сохранить законный вывод без сбрасывая файл с сообщениями об ошибках. Но что, если сообщения об ошибках что вы хотите сохранить? Это вполне обычно при устранении неполадок. решение заключается в использовании знака большего размера а затем амперсанд. (Эта строить работы практически во всех современных UNIX shell.) Он перенаправляет стандартный выход и стандартный ошибка. Например:

$ gcc invinitjig.c >& error-msg

Посмотрите там, если это поможет: другой форум

Ответ 6

Предположим, что вы хотите предупреждать о hilight и ошибку из сборщика:

make |& grep -E "warning|error"

Ответ 7

Попробуйте make 2> file. Предупреждения компилятора выводятся на стандартный поток ошибок, а не на стандартный поток вывода. Если мое предложение не работает, ознакомьтесь с руководством по работе с оболочкой для того, как отменить стандартную ошибку.

Ответ 8

Обычно это не то, что вы хотите сделать. Вы хотите запустить компиляцию в редакторе, который имеет поддержку для чтения вывода компилятора и перехода к файлу/строке char, у которого есть проблемы. Он работает во всех редакциях, которые стоит рассмотреть. Вот настройка emacs:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation.html