cmake IF语句中的错误

时间:2017-03-07 10:38:23

标签: cmake

我的if文件中有一个.cmake语句,内容如下:

if( (NOT ${GCC_VERSION} GREATER some_version ) AND something EQUAL somethingelse)
    #todo ...
endif()

我只需要NOT进行第一次检查。

我收到以下错误:

CMake Error: Error in cmake code at
/.../XXX.cmake:123:
Parse error.  Function missing ending ")".  Instead found left paren with text "(".

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

GCC_VERSION变量可能为空,从而导致if语句无效。

${GCC_VERSION}放在引号中(CMake只知道字符串)或者不要取消引用变量(这是一个等效的操作)是安全的:

if( NOT "${GCC_VERSION}" GREATER some_version )

if( NOT GCC_VERSION GREATER some_version )

<强>参考