今天软件仓库通过cmake编译c++项目时遇到报错:
Cmake Parse error. Expected a command name, got unquoted argument with text “PROJECT”
因为CMakeList.txt是直接svn上拉下来的,没想到会这个有问题。
所有可能性都排出后,对比本地linux环境上的CMakeList.txt。
发现,svn上的CMakeList.txt文件格式是utf-8 bomb格式。
这就有问题了。
bomb解释:
BOM即:byte order mark
这个是为UTF-16和UTF-32准备的,用于标记字节序(byte order)。
「UTF-8」和「带 BOM 的 UTF-8」的区别就是有没有 BOM。即文件开头有没有 U+FEFF。标记大小端。大端:FEFF,小端:FFFE。
直接将CMakeList.txt文件改为no bomb格式即可。
linux上修改,vi打开 :set nobomb 即可。
windows上直接notepad++修改编码为utf-8无BOM格式编码。
 
cmake编译时报错解决:等您坐沙发呢!