【问题标题】:Eclipse CDT Custom Compiler Error Parsing PluginEclipse CDT 自定义编译器错误解析插件
【发布时间】:2011-01-18 22:20:31
【问题描述】:

我正在使用带有 Eclipse CDT 的不常见的 C 编译器。我有一个很好的 make 文件设置,但我希望 IDE 与我的编译器的错误/警告输出集成。

有人知道我可以采取哪些步骤来编写一个插件来解析/支持我的编译器输出吗?我认为这应该很容易,但在弄清楚从哪里开始时有一个进入障碍。如果 Eclipse 能让我做 New -> Compiler Error Parser Plugin 或类似的东西,那就太好了。

谢谢

【问题讨论】:

    标签: c++ c eclipse eclipse-plugin eclipse-cdt


    【解决方案1】:

    事情没那么简单……

    首先确保您已安装 Eclipse PDE(插件开发环境)和 CDT SDK。如果没有,那么您需要告诉 Eclipse 下载它们(帮助 -> 安装新软件)。

    然后,创建一个新的插件项目。在其 Extensions 选项卡中,针对点 org.eclipse.cdt.core.ErrorParser 添加一个新扩展。然后,您将不得不编写一些 java 代码来实际实现它。幸运的是,PDE 使元工作相对简单。您将您的班级名称放在相应的框中,然后单击“class*”超链接,它将为您创建一个骨架班级。

    我建议您获取 CDT 的源代码并查看 GCCErrorParser.java 作为您必须执行的各种操作的说明。

    最后,当您准备好对其进行测试时,设置 Eclipse Application 类型的调试配置。 (这将产生 Eclipse 的第二个实例;它必须使用不同的工作台。)进入 C 项目的属性、设置面板、错误解析器选项卡并打开闪亮的新错误解析器。

    【讨论】:

    • 答案有点过时了。
    【解决方案2】:

    在 Eclipse CDT 7.0.1 中它非常简单。只需添加一个新的错误解析器 窗口 -> 首选项 -> C/C++ 构建 -> 设置 并添加 3 组正则表达式:文件名、行号和错误描述。

    例如,对于 Visual Studio 编译器,正则表达式将为:

    (.*?)\((\d*)\)\s:\s(.*error.*)
    
    $1 - filename
    $2 - line number
    $3 - error description
    

    【讨论】:

    • 很遗憾它不适用于外部构建工具。
    【解决方案3】:

    IBM 已发布了一份关于如何编写自己的 CDT 解析器的分步指南,可以使用 here

    未来打样的相关谷歌搜索应该是: https://www.google.com/search?q=ibm+eclipse+write+cdt+parser&oq=ibm+eclipse+write+cdt+error+parser

    【讨论】:

    • 链接失效。如果你提供了一个标题,我可以自己用谷歌搜索。
    • @sadik Google“ibm eclipse write cdt error parser”,第一次命中。使用工作链接更新答案。
    【解决方案4】:

    在 CDT 7 中将包含一个正则表达式错误解析器,它应该使这类事情变得更加简单。 faq有一些细节。

    CDT 7.0 直到 6 月底才会发布,但您可以尝试里程碑构建,看看它是否符合您的要求。这些可以下载here。您还需要具有匹配的里程碑版本的 Eclipse 平台。

    【讨论】:

    • 答案有点过时了。
    【解决方案5】:

    【讨论】:

      【解决方案6】:

      这行得通吗?

      (.*)\((\d+)\)\s:\sError(.*)
      

      文件:$1 线:$ 2 描述:$3

      。 srkos

      【讨论】:

        【解决方案7】:

        在 CDT 8 中,此功能不需要插件。我支持多个编译器并使用简单的正则表达式构建系统。见截图here。您可以在将正则表达式复制到此对话框之前直接在控制台输出中测试它们。如果您需要在机器之间移动它们,生成的解析器将存储在您的工作区中的 .metadata/.plugins/org.eclipse.cdt.core 下

        【讨论】:

          猜你喜欢
          • 2011-11-12
          • 2011-08-16
          • 1970-01-01
          • 2015-01-30
          • 2011-12-30
          • 1970-01-01
          • 1970-01-01
          • 2016-11-02
          • 2012-01-02
          相关资源
          最近更新 更多