我在尝试安装与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.
现在我有补丁文件,我应该运行什么来应用它?
答案 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.diff
或patch -p1 fix_compile.diff
。我喜欢尝试首先应用补丁,以防万一补丁的某些干净利落,有些则不适用:
patch --dry-run < fix_compile.diff
或
patch --dry-run -p1 < fix_compile.diff
等。一旦找到有效的方法,删除--dry-run
并应用,编译,看看你是否适合去。