是否可以在工具链文件中使用
try_compile
?我的 toolchain.cmake 中有以下代码:
set(MAIN_SOURCE "int main() {}")
try_compile(
COMPILE_RESULT
SOURCE_FROM_VAR "main.cpp" MAIN_SOURCE
)
但不幸的是,当我尝试使用
配置我的项目时cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake
它失败了:
try_compile() works only for enabled languages. Currently these are:
即未启用任何语言。
它应该有效吗?
来自 CMake 文档:
CMake 提供了 try_compile() 命令和包装宏(例如 CheckSourceCompiles、CheckCXXSymbolExists 和 CheckIncludeFile)来测试各种工具链功能的功能和可用性。这些 API 以某种方式测试工具链并缓存结果,以便下次 CMake 运行时不必再次执行测试。
所以答案是否定的。
try_compile
根据定义需要编译器。您的toolchain
可以设置编译器。
您可以在您的 cmake 工具链文件中考虑使用
execute_process
。