为什么这个CMake脚本找到“alloca”但仍然失败?

时间:2017-06-16 01:21:32

标签: c++ cmake alloca

我在我的一个项目中使用alloca函数,并决定使用CMake确保它可用。所以我把这个位添加到我的CMakeLists.txt文件中:

include(CheckSymbolExists)
check_symbol_exists(alloca stdlib.h;cstdlib ALLOCA_EXISTS)
if (NOT ALLOCA_EXISTS)
    message(FATAL_ERROR "Platform does not support alloca")
endif ()

当我运行CMake时,这是输出的(相关部分):

-- Looking for alloca
-- Looking for alloca - found
CMake Error at CMakeLists.txt:11 (message):
  Platform does not support alloca


-- Configuring incomplete, errors occurred!

那么如何显示代码找到函数但是没有设置变量?还是别的什么?

1 个答案:

答案 0 :(得分:1)

指定标题时必须添加引号:

check_symbol_exists(alloca "stdlib.h;cstdlib" ALLOCA_EXISTS)

否则,ALLOCA_EXISTS将被忽略,变量cstdlib的值为TRUE