我在运行cmake
时遇到以下错误
/build.make:3687: *** missing separator. Stop.
行3687出现错误:
game_rUnversioned directory_32_OBJECTS = \
那里怎么了
最佳答案
直接的答案是,您不能创建包含空格的变量名。在make的更新版本中无效。所以这:
game_rUnversioned directory_32_OBJECTS = \
由于空间原因,不是有效的变量分配(与反斜杠无关)。
更长的答案是您的脚本
${CMAKE_CURRENT_SOURCE_DIR}/svn_version.sh
显然应该打印SVN版本,而是打印了字符串Unversioned directory
。您必须弄清楚为什么会这样,然后让该脚本打印正确的值,或者至少确保它打印的任何值都是一个单词并且不包含空格,然后才能起作用。预计到达时间:
如果要在非SVN工作空间的目录中进行此工作,则需要修复
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目录,它将打印不包含任何空格的值(unknown
),这意味着您的makefile文件不会中断。