Как мне запустить патч для MacRuby - PullRequest
1 голос
/ 05 апреля 2011

Я столкнулся с ошибкой при попытке установить MacRuby, связанной с llvm, и нашел исправление для конкретной проблемы, но не знаю, как применить исправление.

Ошибка

    In file included from main.cpp:8:
llvm.h:21:38: error: llvm/Analysis/DIBuilder.h: No such file or directory
In file included from vm.h:594,
                 from main.cpp:17:

И патч, который я нашел, был Не удалось скомпилировать с LLVM 2.8 в r5276.

Теперь, когда у меня есть файл патча, что мне запустить, чтобы применить его?

1 Ответ

2 голосов
/ 05 апреля 2011

Этот патч выглядит достаточно простым, чтобы вы могли просто применить его вручную - удалите строки, начинающиеся с -, и добавьте строки, начинающиеся с + - но это необходимо только при наличиидостаточно изменений, чтобы исправление не применялось корректно.

Поскольку файл исправления может быть сгенерирован разными способами, он также может применяться различными способами:

diff -u a a.fixed > fix_compile.diff
patch < fix_compile.diff

diff -u dir1/a dir2/a > fix_compile.diff
patch -p1 < fix_compile.diff

diff -u dir1 dir2 > fix_compile.diff
patch -p1 < fix_compile.diff

Если исправлен файлна шесть каталогов в иерархии, вам нужно либо попробовать применить исправление на шесть каталогов вверх, либо использовать -p6 или аналогичный параметр для удаления лишних ведущих каталогов.

Это может показаться сложным, но если выИзмените каталог на тот, в котором находятся файлы, подлежащие исправлению, вы можете обычно просто запустить patch < fix_compile.diff или patch -p1 fix_compile.diff.Мне нравится попробовать сначала применить патчи, на тот случай, если некоторые патчей применяются чисто, а некоторые нет:

patch --dry-run < fix_compile.diff

или

patch --dry-run -p1 < fix_compile.diff

и т. Д.Как только вы найдете тот, который работает, удалите --dry-run и примените, скомпилируйте и посмотрите, можете ли вы пойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...