Я разрабатываю проект с CMake. Я могу создать все, но получаю долгую ошибку компоновщика.
Я попытался передать по каналу make
кому: less
, но выполнение этого, я только получаю два экрана, тот, который показывает прогресс сборки и тот, который показывает усеченную ошибку компоновщика. Как я могу замедлить ошибочный уровень прокрутки компоновщика или иначе получить доступ к нему?
Я также попробовал
make > buildinfo.txt
но снова который только показал мне прогресс сборки. Не было ничего там об ошибке компоновщика.
Ошибки показывают на 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