Makefile error: build.make:3687: *** missing separator. Stop
Makefile error: build.make:3687: *** missing separator. Stop
我收到以下错误 运行 cmake
/build.make:3687: *** missing separator. Stop.
第3687行出现错误:
game_rUnversioned directory_32_OBJECTS = \
哪里有问题?
那个反斜杠看起来很可疑。这将被 Make 解释为对 continue that line on the next(物理)行的尝试,那么该行包含什么?
直接的答案是,您不能创建包含白色的变量名space。这在(较新版本的)make 中无效。所以这个:
game_rUnversioned directory_32_OBJECTS = \
不是有效的变量赋值,因为 space(它与反斜杠无关)。
较长的答案是您的脚本 ${CMAKE_CURRENT_SOURCE_DIR}/svn_version.sh
显然应该打印 SVN 版本,却打印了字符串 Unversioned directory
。您必须弄清楚为什么会这样,并让该脚本打印正确的值,或者至少确保它打印的任何值都是一个单词并且不包含 whitespace,然后才能工作。
预计到达时间:
如果你想让它在一个不是 SVN 工作的目录中工作space,你需要修复 svn_version.sh
脚本以便它可以处理它不能处理的情况'找不到版本。像这样重写该脚本:
#!/bin/sh
ver=$(svnversion -n -c game | cut -d':' -f2)
case $ver in
(*\ *) echo unknown ;;
(*) echo "$ver" ;;
esac
exit 0
这确保如果 game
目录不是 SVN 目录,它将打印一个不包含任何 spaces (unknown
) 的值,这意味着您的 makefile 不会中断。
我收到以下错误 运行 cmake
/build.make:3687: *** missing separator. Stop.
第3687行出现错误:
game_rUnversioned directory_32_OBJECTS = \
哪里有问题?
那个反斜杠看起来很可疑。这将被 Make 解释为对 continue that line on the next(物理)行的尝试,那么该行包含什么?
直接的答案是,您不能创建包含白色的变量名space。这在(较新版本的)make 中无效。所以这个:
game_rUnversioned directory_32_OBJECTS = \
不是有效的变量赋值,因为 space(它与反斜杠无关)。
较长的答案是您的脚本 ${CMAKE_CURRENT_SOURCE_DIR}/svn_version.sh
显然应该打印 SVN 版本,却打印了字符串 Unversioned directory
。您必须弄清楚为什么会这样,并让该脚本打印正确的值,或者至少确保它打印的任何值都是一个单词并且不包含 whitespace,然后才能工作。
预计到达时间:
如果你想让它在一个不是 SVN 工作的目录中工作space,你需要修复 svn_version.sh
脚本以便它可以处理它不能处理的情况'找不到版本。像这样重写该脚本:
#!/bin/sh
ver=$(svnversion -n -c game | cut -d':' -f2)
case $ver in
(*\ *) echo unknown ;;
(*) echo "$ver" ;;
esac
exit 0
这确保如果 game
目录不是 SVN 目录,它将打印一个不包含任何 spaces (unknown
) 的值,这意味着您的 makefile 不会中断。