我目前在目录中 -/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
(请注意,我指定了从哪个目录执行这些命令)
diff 是在 Linux 机器上生成的,因此没有隐藏的回车符。
另外,这有效 -
patch -p1 include/llvm/Demangle/MicrosoftDemangleNodes.h nameofthepatch.diff
这是站不住脚的,因为单个.diff
文件可能包含多个文件的差异。
为什么我会收到此错误?