【问题标题】:viewing top lines of big error outputs查看大错误输出的顶行
【发布时间】:2012-06-15 06:30:09
【问题描述】:

在编译过程中,屏幕上会抛出许多错误。要开始解决它们,我需要向上滚动 3、4 页。我试着对他们进行正面攻击,但他们仍然出现在终端上。

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

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

【问题讨论】:

  • 如果你使用 vim,你可以试试<your compile statement> 2>&1 | vim - 那应该将 STDERR 和 STDOUT 传送到 vim 以供查看。
  • <your compile statement> 2>&1 | more 。 (在迈克尔评论的帮助下)
  • @Michael 评论的重要部分是重定向部分:来自编译器的错误放在stderr 上。要将其传送到headmoreless 之类的查看器,甚至vim 之类的编辑器,您需要将stderr 重定向到stdout。这就是&2>1(或更准确地说是2>&1)所做的。有关重定向的更多信息,请参阅 shell 的手册页。

标签: c++ linux ubuntu head


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果你使用 vim,你可以试试 <your compile statement> 2>&1 | vim - 这应该将 STDERRSTDOUT 传送到 vim 以供查看。

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

    重要的部分是重定向部分:来自编译器的错误是 穿上标准错误。将其传递给头部,观众或多或少甚至喜欢 像 vim 这样的编辑器,您需要将 stderr 重定向到 stdout。这是 &2>1(或更准确地说是 2>&1)做了什么。见手册 有关重定向的更多信息。

    【讨论】:

    • [vickey@tb 测试]$ g++ testCoverDownloader.cpp ../CoverDownloader.cpp -I /usr/include/QtGui/ -I /usr/include/QtCore/ -lQtGui -lQtCore -std= c++0x 2>&1 | vim Vim:警告:输入不是来自终端 Vim:读取输入时出错,正在退出... Vim:保存文件... Vim:完成。
    • g++ testCoverDownloader.cpp ../CoverDownloader.cpp -I /usr/include/QtGui/ -I /usr/include/QtCore/ -lQtGui -lQtCore -std=c++0x 2>&1 | vim - 我想你可能错过了最后的-
    • 是的 :P .. 这就是我正在寻找的解决方案 :)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2012-01-30
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多