如何为MacRuby运行补丁

时间:2011-04-05 02:54:11

标签: ruby llvm macruby

我在尝试安装与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.

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

1 个答案:

答案 0 :(得分: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并应用,编译,看看你是否适合去。