나는 현재 디렉토리에 있습니다 -/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
파일에 여러 파일의 차이점이 포함될 수 있으므로 이는 불가능합니다.
이 오류가 발생하는 이유는 무엇입니까?