Jel*_*Cat 57 makefile vlc cross-compiling
运行时出现以下错误make,我不知道它意味着什么或者该怎么做.任何人都可以照亮我或指向正确的方向吗?
(cd libdvdnav-git && patch -p1) < ../../contrib/src/dvdnav/dvdnav.patch
patching file Makefile.am
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
make: *** [dvdnav] Error 1
Run Code Online (Sandbox Code Playgroud)
我正在尝试为win32交叉编译VLC(使用linux).
小智 63
这是由...产生的错误patch.如果你打开.patch文件,你会看到它被组织成一堆段,即所谓的"帅哥".每个块都标识旧版本和新版本中相应的代码片段(按行号),这些代码片段之间的差异以及它们之间的相似性("上下文").
如果大块的相似性与原始文件中的相似性,则大块可能会失败.当您看到此错误时,几乎总是因为您正在使用补丁来修补您正在修补的错误版本的代码.有几种方法可以解决这个问题:
libdvdnav已包含补丁(最佳选项)的更新版本..patch的版本的文件libdvdnav.libdvdnav,并根据修补程序中的说明进行更正.libdvdnav更接近.patch文件的目标版本(可能是一个坏主意).And*_* DS 16
在某些情况下,文件版本没有区别,只是缩进、间距、行尾或行号不同。
尽管存在这些差异,但要修补,可以使用以下两个参数:
--ignore-whitespace :它忽略空白差异(缩进等)。
--fuzz 3 : “--fuzz X ”选项将最大模糊因子设置为行。此选项仅适用于上下文和统一差异;它在寻找安装大块头的地方时最多忽略X行。请注意,较大的模糊因子会增加制作错误补丁的几率。默认模糊因子为 2;将其设置为超过 diff 中上下文的行数(通常为 3)是没有意义的。
不要忘记用户“--dry-run”:它会尝试不应用补丁。
例子 :
patch --verbose --dry-run --ignore-whitespace --fuzz 3 < /path/to/patch.patch
Run Code Online (Sandbox Code Playgroud)
有关 Fuzz 的更多信息:
https://www.gnu.org/software/diffutils/manual/html_node/Inexact.html
小智 5
调试技巧
markus@ubuntu:~$ patch -Np1 --ignore-whitespace -d software-1.0 < fix-bug.patch
请参阅markus 的教程| 归档时间: |
|
| 查看次数: |
85784 次 |
| 最近记录: |