链接器错误滚动得太快

链接器错误滚动得太快

我正在使用 CMake 构建一个项目。我可以构建所有内容,但遇到了冗长的链接器错误。

我尝试过通过管道传输makeless,但这样做只得到两个屏幕,一个显示构建进度,另一个显示截断的链接器错误。我如何才能减慢链接器错误滚动速度或以其他方式访问它?

我也试过

make > buildinfo.txt

但同样,它只显示了构建进度。其中没有任何关于链接器错误的信息。

答案1

错误显示在 STDERR(文件描述符 2)上,而不是 STDOUT(文件描述符 1)上;由于您仅重定向/管道 STDOUT,因此您将无法获取 STDERR 内容。因此您需要某种方法来处理 STDERR。


如果要将 STDOUT 和 STDERR 都保存在一个文件中:

make &>buildinfo.txt

POSIX 风格:

make >buildinfo.txt 2>&1

仅限 STDERR:

make 2>buildinfo.txt

以上将在终端上打印 STDOUT(假设 FD 1 已连接到终端),如果您不想要它,请丢弃它:

make >/dev/null 2>buildinfo.txt

pipefs现在,通过( )将 STDOUT 和 STDERR 传输到一些其他命令 STDIN |,例如less

make |& less

POSIX 风格:

make 2>&1 | less

仅限 STDERR:

make 2>&1 >/dev/null | less

相关内容