为什么这个 CMake 脚本找到 "alloca" 仍然失败?
Why does this CMake script find "alloca" and still fail?
我在我的一个项目中使用 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!
那么为什么显示的代码找到了函数但没有设置变量?还是其他原因?
指定 headers:
时必须加引号
check_symbol_exists(alloca "stdlib.h;cstdlib" ALLOCA_EXISTS)
否则,ALLOCA_EXISTS
将被忽略并创建一个变量 cstdlib
,其值为 TRUE
。
我在我的一个项目中使用 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!
那么为什么显示的代码找到了函数但没有设置变量?还是其他原因?
指定 headers:
时必须加引号check_symbol_exists(alloca "stdlib.h;cstdlib" ALLOCA_EXISTS)
否则,ALLOCA_EXISTS
将被忽略并创建一个变量 cstdlib
,其值为 TRUE
。