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:

そして、私が見つけたパッチは 、r5276のLLVM2.8でコンパイルできませんでした。

パッチファイルができたので、それを適用するには何を実行しますか?

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

修正されたファイルが階層の 6 つ下のディレクトリにある場合は、パッチを 6 つ上のディレクトリに適用するか、-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て適用し、コンパイルして、準備ができているかどうかを確認します。

于 2011-04-05T03:29:30.583 に答える