makefile:15:**缺少分隔符。停止

makefile:15:**缺少分隔符。停止,makefile,separator,Makefile,Separator,我知道以前在SE上出现过关于“缺少分隔符.停止”的问题,但我不知道我的makefile哪里出错了 当我的程序安装正在运行时,终端会出现以下情况: * Executing: 'make all -f makefile install INSTALL_DIR=/home/leomr/mcell_workspace/mcell_tools/work/build_cellblender' ['make', 'all', '-f', 'makefile', 'install', 'INSTALL_

我知道以前在SE上出现过关于“缺少分隔符.停止”的问题,但我不知道我的makefile哪里出错了

当我的程序安装正在运行时,终端会出现以下情况:

*     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.
当我在我的cellblender目录中输入“vi makefile”时,我得到以下信息:

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)
UNAME\u S:=$(shell UNAME-S)
#ifeq($(UNAME_S),Linux)
#安装\u DIR=~/.config/blender/2.78/scripts/addons/
##安装\u DIR=~/src/blender/blender-2.78c-cellbender-linux/2.78/scripts/addons/
#否则
#安装_DIR=/Applications/Blender-2.78c-cellbender/Blender.app/Contents/Resources/2.78/scripts/addons/
#恩迪夫
#CellBlender将安装在这里。这通常应该是指向平台上所需位置的链接。
#例如,在Linux机器上,可以使用:ln-s~/.config/blender/2.78/scripts/addons/~/my\u cellbender\u链接完成此操作
#例如,在MacOSX机器上,可以使用以下链接完成:ln-s~/Library/Application\Support/Blender/2.78/scripts/addons/~/my\u cellbender\u link
#例如,对于指向Linux捆绑包的链接:ln-s~/src/blender/blender-2.78c-cellbender-Linux/2.78/scripts/addons/~/my\u cellbender\u link
#例如,对于指向MacOSX捆绑包的链接:ln-s/Applications/Blender-2.78c-cellbender/Blender.app/Contents/Resources/2.78/scripts/addons/~/my\u cellbender\u link
>参考/遥控器/原点/主
#Linux:
>参考/遥控器/原点/主
.
.
. (这种情况持续了一段时间)

第15行是第一个“如果你看到这样的东西:

<<<<<<< HEAD
INSTALL_DIR ?= ~/my_cellblender_link/
=======
INSTALL_DIR = ~/my_cellblender_link/
>>>>>>> refs/remotes/origin/master
>refs/remotes/origin/master
你看到的是一个“差异”——很可能是一个

简单地说,该文件“已损坏”

你需要修理它

具体而言:

  • 确定哪个“INSTALL_DIR”是正确的,并删除其他4行

  • 对找到的每一对
    进行冲洗和重复


  • 我上面说的是正确的:

    • 您看到的有趣的
      文本是makefile的一个版本和另一个版本之间的“差异”。这通常是“补丁”的制作方式;它也可以是您的版本控制系统,注意到一个源版本和另一个源版本之间的“冲突”
    • 底线是这个特定的makefile“已损坏”。您需要修复它
    • 一种替代方法是手动编辑它,正如我上面建议的那样
    我之前没有想到,但可能发生的是,你的项目有一个“旧”版本,你在上面签出了一个“新”版本……而你的版本控制工具引入了腐败

    另一项建议:

    • 将整个项目签出到新的干净目录中

    请告诉我们发生了什么!

    这是一个合并冲突标记——您已经完成了git合并(或您正在使用的任何SCC工具),但有一个冲突没有解决。嗯,好吧。我不想更改makefile,所以可能我拉错了分支。如果我使用的是第19行中所述的相同repo(>>>>>>>>refs/remotes/origin/master),我不是,那么我想我不会得到这个。对吗?问题是你不在任何(有效)分支上——你(试图)在分支之间进行了合并,但失败了。或者其他人这样做了,并将其签入了repo(意味着他们破坏了分支)。问:你在使用什么版本控制?Git?Diff(又名“Diff”)您看到的冲突标记)实际上不应该签入。因此,理论上,任何“干净签出”都应该为您提供一个“未损坏”的版本。请参阅下面的说明。这绝对不是一个差异,也不是一个补丁文件。正如上面的注释所述,这是源代码管理工具(Git、Mercurial、Subversion等)的三方合并的结果diff和补丁文件与此不同。好吧。如果你猜的没错,最好的建议仍然是干净地签出一个新目录。签出最新版本(可能还可以),或者更糟糕的是,签出一个早期版本(在上游引入冲突之前)。同意,这就是方法。