makefile - Hunk#1 FAILED en 1. ¿Qué significa eso?
cross-compiling vlc (3)
Consejos para depurar
- Agregue crlf al final del archivo de parche y pruebe si funciona
- prueba el comando --ignore-whitespace como en:
markus@ubuntu:~$ patch -Np1 --ignore-whitespace -d software-1.0 < fix-bug.patch
mira el tutorial de markus
Recibo el siguiente error al ejecutar make
, y no tengo idea de qué significa ni qué hacer al respecto. ¿Alguien puede iluminarme o apuntarme en la dirección correcta?
(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
Estoy intentando cruzar compilar VLC para win32 (usando linux).
Es un error generado por el patch
. Si abriera el archivo .patch
, vería que está organizado en un grupo de segmentos, los llamados "hunks". Cada trozo identifica piezas de código correspondientes (por números de línea) en la versión anterior y nueva, las diferencias entre esos fragmentos de código y las similitudes entre ellos (el "contexto").
Un trozo puede fallar si las similitudes de un trozo no coinciden con lo que está en el archivo original. Cuando ve este error, casi siempre es porque está usando un parche para la versión incorrecta del código que está aplicando. Hay algunas formas de evitar esto:
- Obtenga una versión actualizada de
libdvdnav
que ya incluye el parche (la mejor opción). - Obtenga un archivo
.patch
para la versión delibdvdnav
que estálibdvdnav
. - Parche de forma manual. Para cada trozo en el parche, intente localizar el archivo y las líneas correspondientes en
libdvdnav
, ylibdvdnav
según las instrucciones del parche. - Tome la versión de
libdvdnav
que está más cerca de la versión para la que fue diseñado el archivo.patch
(probablemente una mala idea).
Recibí el mensaje "trozos fallidos" cuando no estaba aplicando el parche en el directorio superior del proyecto git asociado. Estaba aplicando el parche (donde lo creé) en un subdirectorio.
Parece que los parches se pueden crear a partir de subdirectorios dentro de un proyecto git, pero no se aplican.