如何在工具链文件中使用try_compile

问题描述 投票:0回答:1

是否可以在工具链文件中使用

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
1个回答
0
投票

来自 CMake 文档:

CMake 提供了 try_compile() 命令和包装宏(例如 CheckSourceCompiles、CheckCXXSymbolExists 和 CheckIncludeFile)来测试各种工具链功能的功能和可用性。这些 API 以某种方式测试工具链并缓存结果,以便下次 CMake 运行时不必再次执行测试。

所以答案是否定的。

try_compile
根据定义需要编译器。您的
toolchain
可以设置编译器。

您可以在您的 cmake 工具链文件中考虑使用

execute_process

© www.soinside.com 2019 - 2024. All rights reserved.