使用CMake进行交叉编译时,通常可以通过CMAKE_TOOLCHAIN_FILE选项指定工具链文件.在GNU术语中,可以使用此文件指定主机体系结构工具集.但是,通常不能指望能够执行使用此工具链构建的任何内容.通常,需要为构建体系结构编译一些构建工具.
请考虑以下设置.我有两个源文件genfoo.c和bar.c.在构建期间,genfoo.c需要编译和运行.它的输出需要写入foo.h.然后我可以编译bar.c,哪个#include "foo.h".由于CMake默认使用主机架构工具链,因此说明bar.c很简单.但是,我如何告诉它使用构建架构工具链进行编译genfoo.c?简单地说add_executable(genfoo genfoo.c)会导致使用错误的编译器.