makefile: 15: *** отсутствует разделитель. Останавливаться

Я знаю, что были вопросы по поводу «Отсутствует разделитель. Стоп». на SE раньше, но я не могу понять, где мой make-файл идет не так.

Во время установки моей программы в терминале появляется следующее:

*     Executing: 'make all -f makefile install INSTALL_DIR=/home/leomr/mcell_workspace/mcell_tools/work/build_cellblender' ['make', 'all', '-f', 'makefile', 'install', 'INSTALL_DIR=/home/leomr/mcell_workspace/mcell_tools/work/build_cellblender'] in '/home/leomr/mcell_workspace/cellblender'
makefile:15: *** missing separator.  Stop.
* Exit code: 2
* Error: Error: command 'make all -f makefile install INSTALL_DIR=/home/leomr/mcell_workspace/mcell_tools/work/build_cellblender' failed, terminating.

Когда я "vi makefile" в моем каталоге cellblender, я получаю следующее:

UNAME_S := $(shell uname -s)
#ifeq ($(UNAME_S),Linux)
#       INSTALL_DIR = ~/.config/blender/2.78/scripts/addons/
##      INSTALL_DIR = ~/src/blender/Blender-2.78c-CellBlender-linux/2.78/scripts/addons/
#else
#       INSTALL_DIR = /Applications/Blender-2.78c-CellBlender/blender.app/Contents/Resources/2.78/scripts/addons/
#endif

# CellBlender will be installed here. This should typically be a link to the desired location on your platform.
# For example, on a Linux machine it might be done with: ln -s ~/.config/blender/2.78/scripts/addons/ ~/my_cellblender_link
# For example, on a MacOSX machine it might be done with: ln -s ~/Library/Application\ Support/Blender/2.78/scripts/addons/ ~/my_cellblender_link
# For example, for a link pointing into a Linux bundle: ln -s ~/src/blender/Blender-2.78c-CellBlender-linux/2.78/scripts/addons/ ~/my_cellblender_link
# For example, for a link pointing into a MacOSX bundle: ln -s /Applications/Blender-2.78c-CellBlender/blender.app/Contents/Resources/2.78/scripts/addons/ ~/my_cellblender_link

<<<<<<< HEAD
INSTALL_DIR ?= ~/my_cellblender_link/
=======
INSTALL_DIR = ~/my_cellblender_link/
>>>>>>> refs/remotes/origin/master

# Linux:
<<<<<<< HEAD
#INSTALL_DIR = ~/.config/blender/2.78/scripts/addons/
=======
#INSTALL_DIR = ~/.config/blender/2.76/scripts/addons/
>>>>>>> refs/remotes/origin/master
.
.
. (this continues for a while)

15-я строчка - это первая «‹************************************************************************************************************************************************************************************************************************************************************************************************.

Что тут происходит? Должна ли быть вкладка где-нибудь там, где ее нет?

Я использую Debian 10 через виртуальный бокс. Мне сказали, что программа, которую я устанавливаю, работает с Debian 10, хотя она была написана для Debian 9.


person Otherness    schedule 03.04.2020    source источник
comment
Это маркер конфликта слияния - вы выполнили слияние git (или какой-либо другой инструмент SCC, который вы используете), и у вас возник конфликт, но вы не разрешили его.   -  person Chris Dodd    schedule 03.04.2020
comment
Хм, хорошо. Я не хочу менять make-файл, поэтому, возможно, я выбираю не ту ветку. Если бы я использовал то же репо, что написано в строке 19 (››››››› refs / remotes / origin / master), а я не использую, то, думаю, я бы этого не получил. Правильный?   -  person Otherness    schedule 03.04.2020
comment
Проблема в том, что вы не находитесь ни в одной (действительной) ветке - вы (пытались выполнить) слияние между ветвями, и это не удалось. Или кто-то другой сделал это и проверил его в репо (то есть он испортил ветку).   -  person Chris Dodd    schedule 03.04.2020
comment
В: Какой контроль версий вы используете? Git? различия (также известные как маркеры конфликтов), которые вы видите НЕ ДОЛЖНЫ, на самом деле регистрироваться. Итак, теоретически любая чистая проверка должна дать вам неповрежденную версию. Смотрите мои заметки ниже.   -  person FoggyDay    schedule 03.04.2020


Ответы (1)


Если вы видите что-то вроде этого:

<<<<<<< HEAD
INSTALL_DIR ?= ~/my_cellblender_link/
=======
INSTALL_DIR = ~/my_cellblender_link/
>>>>>>> refs/remotes/origin/master

Вы смотрите на "diff" - вполне возможно, что это файл патча.

Проще говоря, файл "поврежден".

Вам нужно это исправить.

Конкретно:

  1. Решите, какой "INSTALL_DIR" правильный, и УДАЛИТЕ остальные 4 строки.

  2. Промойте и повторите для каждой <<<<<<< HEAD >>>>>>> пары, которую вы найдете.


То, что я сказал выше, правильно:

  • Этот забавный <<<<<<< HEAD >>>>>>> текст, который вы видите, представляет собой «различие» между одной версией make-файла и другой. Вот как часто делают «заплатки»; это также может быть ваша система контроля версий, обнаруживающая «конфликт» между одной исходной версией и другой.
  • Суть в том, что этот конкретный make-файл "поврежден". Вам нужно это исправить.
  • Одна альтернатива - отредактировать его вручную, как я предлагал выше.

Раньше мне это не приходило в голову, но, возможно, у вас была «старая» версия вашего проекта, вы выполнили проверку «более новой» версии поверх нее ... и ваш инструмент контроля версий представил коррупция.

ДРУГОЕ ПРЕДЛОЖЕНИЕ:

  • Переместите весь проект в новый, CLEAN каталог.

Пожалуйста, дайте нам знать, что происходит!

person FoggyDay    schedule 03.04.2020
comment
Это абсолютно не различие и не патч. Как упоминалось в комментариях выше, это результат 3-стороннего слияния из инструмента управления версиями (Git, Mercurial, Subversion и т. Д.). Файлы различий и патчей отличаются от этих. - person MadScientist; 03.04.2020
comment
Отлично. Если вы думаете, что это правильно, лучшим предложением будет по-прежнему чистый переход в новый каталог. Проверка последней версии (что, вероятно, нормально) или, в худшем случае, более ранней версии (до того, как конфликт был внесен в апстрим). - person FoggyDay; 03.04.2020
comment
Согласен, это путь. - person MadScientist; 03.04.2020