Ошибка компоновщика, прокручивающая мимо слишком быстро

Я разрабатываю проект с CMake. Я могу создать все, но получаю долгую ошибку компоновщика.

Я попытался передать по каналу make кому: less, но выполнение этого, я только получаю два экрана, тот, который показывает прогресс сборки и тот, который показывает усеченную ошибку компоновщика. Как я могу замедлить ошибочный уровень прокрутки компоновщика или иначе получить доступ к нему?

Я также попробовал

make > buildinfo.txt

но снова который только показал мне прогресс сборки. Не было ничего там об ошибке компоновщика.

2
задан 2 February 2017 в 12:50

1 ответ

Ошибки показывают на STDERR (дескриптор файла 2), не STDOUT (дескриптор файла 1); поскольку Вы перенаправляете/передаете STDOUT по каналу только, Вы не овладеете содержанием STDERR. Таким образом, Вам нужен некоторый способ обработать STDERR.

<час>

, Если Вы хотите сохранить STDOUT и STDERR оба в файле:

make &>buildinfo.txt

POSIX-ly:

make >buildinfo.txt 2>&1

Только STDERR:

make 2>buildinfo.txt

вышеупомянутое распечатает STDOUT на терминале (предположение, что FD 1 присоединен к терминалу), если Вы не хотите это, отбрасываете его:

make >/dev/null 2>buildinfo.txt
<час>

Теперь, для передачи по каналу STDOUT и STDERR к некоторым другим командам STDIN через pipefs (|), например, к less:

make |& less

POSIX-ly:

make 2>&1 | less

Только STDERR:

make 2>&1 >/dev/null | less
2
ответ дан 2 December 2019 в 03:42

Другие вопросы по тегам:

Похожие вопросы: