パッチがファイルを見つけることができません

パッチがファイルを見つけることができません

私は現在のディレクトリにいます -/usr/lib/llvm-9/build

ディレクトリinclude/はシンボリックリンクです -

reikdas@reikdas-VirtualBox:/usr/lib/llvm-9/build$ ls -l
lrwxrwxrwx 1 root root 10 Jan 31 2020 include -> ../include

ただし、スクリプトを介してパッチを適用する予定なので、シンボリックリンクの実際のパスを手動で入力することはできません。

.diff次のファイルがあります。

diff --git a/include/llvm/Demangle/MicrosoftDemangleNodes.h b/include/llvm/Demangle/MicrosoftDemangleNodes.h
index da9d9d5bfdc..3d47471f0ef 100644
--- a/include/llvm/Demangle/MicrosoftDemangleNodes.h
+++ b/include/llvm/Demangle/MicrosoftDemangleNodes.h
@@ -16,6 +16,8 @@
 #include "llvm/Demangle/DemangleConfig.h"
 #include "llvm/Demangle/StringView.h"
 #include <array>
+#include <cstdint>
+#include <string>
 
 namespace llvm {
 namespace itanium_demangle {

はい -patch -p1 < nameofthepatch.diff

ただし、エラーが発生します。

Can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading upto this was:
....
File to patch:

しかし、ファイルは存在します。

reikdas@reikdas-VirtualBox:/usr/lib/llvm-9/build$ ls include/llvm/Demangle/ | grep MicrosoftDemangleNodes.h
MicrosoftDemangleNodes.h

同じエラーが発生します。patch -p1 --follow-symlinks < nameofthepatch.diff

(このコマンドを実行するディレクトリを指定したことに注意してください)

違いはLinuxシステムで生成されるため、隠しキャリッジリターンはありません。

また、これは動作します -

patch -p1 include/llvm/Demangle/MicrosoftDemangleNodes.h nameofthepatch.diff

単一の.diffファイルに複数のファイルの違いが含まれる可能性があるため、これは不可能です。

このエラーが発生するのはなぜですか?

ベストアンサー1

おすすめ記事