CMake错误"如果给定参数"后跟括号,"NOT","EQUALS"等

Mic*_*ael 7 if-statement cmake

CMake从以下行发出错误

if(NOT ($ENV{TnCfg} STREQUAL Linux_Build_Speech))
Run Code Online (Sandbox Code Playgroud)

错误是

CMakeLists.txt的CMake错误:37(如果):

    如果给出论点:

"NOT" "(" "STREQUAL" "Linux_Build_Speech" ")"
Run Code Online (Sandbox Code Playgroud)

指定了未知参数

有什么问题?该行是有效代码.

usr*_*567 11

可能你试图检查一个空变量.问题是$ENV{TnCfg}因为它是空的.CMake用它们的值替换变量名的值,导致

if (NOT (STREQUAL Linux_Build_Speech))
Run Code Online (Sandbox Code Playgroud)

那是无效的,CMake想要留下一个论点STREQUAL.

在变量周围加上引号

if(NOT ("$ENV{TnCfg}" STREQUAL Linux_Build_Speech))
Run Code Online (Sandbox Code Playgroud)

修复问题,因为它被""导致替换

if(NOT ("" STREQUAL Linux_Build_Speech))
Run Code Online (Sandbox Code Playgroud)

并且空字符串是有效参数.

  • 没关系,我认为当前的问题也会对其他人有用.请接受答案,然后很明显你不再寻求答案. (2认同)