패치가 파일을 찾을 수 없습니다

패치가 파일을 찾을 수 없습니다

나는 현재 디렉토리에 있습니다 -/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파일에 여러 파일의 차이점이 포함될 수 있으므로 이는 불가능합니다.

이 오류가 발생하는 이유는 무엇입니까?

관련 정보