1

在编译过程中,屏幕上会抛出许多错误。要开始解决它们,我需要向上滚动 3、4 页。我试着对他们做头,但他们仍然来到终端。

g++ -std=c++0x testCoverDownloader.cpp -I /usr/include/QtCore/ -I /usr/include/QtGui 2>&1 | head

如何我首先看到最上面的错误,然后向下滚动页面?上面的代码剪切输出以显示前 10 行。我想要的是所有错误,但从一开始就不需要向上滚动

4

3 回答 3

2

除了使用 2>&1 将 STDERR 结果发送到 STDOUT 之外,您可能还想尝试 tee 以便将结果放入文件中以供以后查看。

于 2012-06-15T06:41:17.693 回答
1

如果你使用 vim,你可以试试<your compile statement> 2>&1 | vim -That should pipe STDERRand STDOUTto vim for 查看。

编辑:在@joachim pilberg评论中添加以提供更准确的答案:

重要的部分是重定向部分:来自编译器的错误放在 stderr 上。要将其传送到头部,或多或少的查看器甚至像 vim 这样的编辑器,您需要将 stderr 重定向到 stdout。这就是 &2>1(或更准确地说是 2>&1)所做的。有关重定向的更多信息,请参阅 shell 的手册页。

于 2012-06-15T06:37:21.063 回答
1

您还可以添加 -Wfatal-errors 编译器选项以在第一个错误后停止编译

于 2012-06-15T08:28:46.967 回答