1

我在尝试安装与 llvm 相关的 MacRuby 时遇到错误,并找到了针对特定问题的补丁,但不知道如何应用补丁。

错误是

    In file included from main.cpp:8:
llvm.h:21:38: error: llvm/Analysis/DIBuilder.h: No such file or directory
In file included from vm.h:594,
                 from main.cpp:17:

我发现的补丁是 Could not compile with LLVM 2.8 in r5276。

现在我有了补丁文件,我应该运行什么来应用它?

4

1 回答 1

2

该补丁看起来很简单,您可以简单地手动应用它——删除以开头的行-并添加以开头的行+——但这只有在有足够的更改以致补丁无法干净应用时才需要。

因为补丁文件可以通过不同的方式生成,也可以通过不同的方式应用:

diff -u a a.fixed > fix_compile.diff
patch < fix_compile.diff

diff -u dir1/a dir2/a > fix_compile.diff
patch -p1 < fix_compile.diff

diff -u dir1 dir2 > fix_compile.diff
patch -p1 < fix_compile.diff

如果固定文件是层次结构中的六个目录,您需要尝试应用补丁六个目录,或者使用-p6或类似的选项来去除无关的前导目录。

听起来可能很复杂,但是如果您将目录更改为包含要修补的文件的目录,您通常只需运行patch < fix_compile.diffpatch -p1 fix_compile.diff. 我喜欢先尝试应用补丁,以防一些补丁干净地应用,而有些则没有:

patch --dry-run < fix_compile.diff

或者

patch --dry-run -p1 < fix_compile.diff

等等一旦你找到一个工作,删除--dry-run并应用,编译,看看你是否很好。

于 2011-04-05T03:29:30.583 回答