使用CMake GUI设置交叉编译器文件

6

我正在尝试使用CMake设置我的交叉编译构建。到目前为止,我是通过从命令行调用CMake来设置交叉编译器文件的:

#Call cmake with the given options
cmake -D CMAKE_TOOLCHAIN_FILE=$cross_cmp_file \
      -D BUILD_TESTS:BOOLEAN=$build_test \
      ../src 

这很好运作。

现在我正试图通过添加以下内容从GUI设置CMAKE_TOOLCHAIN_FILE变量:

#CMAKE cross compiler file
set(CMAKE_TOOLCHAIN_FILE "Toolchain file" CACHE FILEPATH "../arm-crosscompile.cmake")

针对我的CMakeLists.txt文件。

实际上这会在GUI中显示变量,但当我按下“配置”按钮时,出现在CMAKE_CXX_COMPILER变量中的c++编译器仍然是默认的而不是在工具链文件中指定的编译器。

如何在CMake-GUI中设置工具链文件呢?

2个回答

18

终于搞定了。非常简单。

第一次按“配置”按钮时,您可以指定生成器参数,为项目选择任何生成器。然后选择选项“为交叉编译指定工具链文件”并单击下一步:

为交叉编译指定工具链文件:

单击下一步。在以下对话框中,输入交叉编译文件的路径,完成。


1
通常哪一个是“交叉编译文件”?你能举个例子吗?谢谢。 - Janos
1
交叉编译文件是一个CMake脚本,它指定要使用哪个编译器,以及其他配置。您应该为您的特定平台获取/创建一个。在问题中,您可以看到我正在使用 arm-crosscompile.cmake - El Marce

3

在调用 project() 之前还是之后设置变量?

编译器检测发生在该调用内部,因此必须在到达之前设置它。

尽管我不确定你能否在第一次运行后更改这些设置。

通常,您会使用向导样式对话框在第一次运行 Cmake 时设置工具链。


谢谢你的回答。我不知道有向导式对话框。我该如何在Linux中安装并执行它?再次感谢。 - El Marce
@ElMarce 实际上我认为这只是 Windows 版本的一部分。它会在您第一次配置时执行。 - Mario
您可以删除缓存以重置配置。 - optional
1
@optional 当然,但那基本上就是重新开始。与其这样做,你最好使用第二个工作/构建目录。 - Mario

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接