gpt4 book ai didi

emacs - 在 emacs 编译模式下正确处理并行构建错误

转载 作者:行者123 更新时间:2023-12-03 17:56:31 24 4
gpt4 key购买 nike

当我使用时 M-x compile使用 make -jn 对多(级别)目录项目进行并行编译,当我遇到错误时,我无法使用 next-error 到达正确的位置东西。对于有问题的文件,Emacs 总是进入错误的目录。但是如果我没有 -jn 就这样做,我没有问题。

最佳答案

next-error使用编译的文本输出来确定去哪里。但是对于并行编译,这个文本输出可能会被破坏,即使它没有被破坏,它也会并且经常是模棱两可的(想想一个任务编译 foo/bar,另一个任务编译 toto/titi,输出看起来像“输入foo 目录;进入 toto 目录;bar 中的错误:20;titi 中的错误:69")。

我只能想到以下方法来解决这个问题:

  • 构建您的 make 文件,以便您永远不会更改目录(因此所有文件名都相对于相同的当前工作目录)。
  • 更改您的 make 文件以便将绝对文件名传递给您的编译器,因此错误消息中的所有文件名都是绝对的。
  • 破解 Emacs 的 compile.el这样在查找“bar”时,它会在之前提到的所有目录中获取它。

  • 最后一个更改可能是一个很好的更改(即欢迎补丁),但请注意,如果“foo”和“toto”中都存在“bar”,它仍然会遇到问题。
    其他两个更改也仍然会遇到问题,因为输出也可能最终看起来像“Entering directory foEntering directory toto; o;”;我不知道可以做些什么来避免这个问题。

    关于emacs - 在 emacs 编译模式下正确处理并行构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725966/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com