在编译过程中,屏幕上会抛出许多错误。要开始解决它们,我需要向上滚动 3、4 页。我试着对他们做头,但他们仍然来到终端。
g++ -std=c++0x testCoverDownloader.cpp -I /usr/include/QtCore/ -I /usr/include/QtGui 2>&1 | head
如何我首先看到最上面的错误,然后向下滚动页面?上面的代码剪切输出以显示前 10 行。我想要的是所有错误,但从一开始就不需要向上滚动
除了使用 2>&1 将 STDERR 结果发送到 STDOUT 之外,您可能还想尝试 tee 以便将结果放入文件中以供以后查看。
如果你使用 vim,你可以试试<your compile statement> 2>&1 | vim -
That should pipe STDERR
and STDOUT
to vim for 查看。
编辑:在@joachim pilberg
评论中添加以提供更准确的答案:
重要的部分是重定向部分:来自编译器的错误放在 stderr 上。要将其传送到头部,或多或少的查看器甚至像 vim 这样的编辑器,您需要将 stderr 重定向到 stdout。这就是 &2>1(或更准确地说是 2>&1)所做的。有关重定向的更多信息,请参阅 shell 的手册页。
您还可以添加 -Wfatal-errors 编译器选项以在第一个错误后停止编译