Como instruir o CMake a usar o compilador de arquitetura de construção
Ao usar o CMake para compilação cruzada, geralmente se especifica um arquivo de cadeia de ferramentas viaCMAKE_TOOLCHAIN_FILE
opção. NoTerminologia GNU, é possível especificar o conjunto de ferramentas da arquitetura do host usando esse arquivo. No entanto, geralmente não se pode esperar ser capaz de executar qualquer coisa criada com esta cadeia de ferramentas. Com bastante frequência, algumas ferramentas de compilação precisam ser compiladas para a arquitetura de compilação.
Considere a seguinte configuração. Eu tenho dois arquivos de origemgenfoo.c
ebar.c
. Durante a construção,genfoo.c
precisa ser compilado e executado. Sua saída precisa ser escrita parafoo.h
. Então eu posso compilarbar.c
, qual#include "foo.h"
. Como o CMake usa como padrão a cadeia de ferramentas da arquitetura de host, as instruções parabar.c
são fáceis. Mas como eu digo para usar a cadeia de ferramentas de arquitetura de construção para compilargenfoo.c
? Simplesmente dizendoadd_executable(genfoo genfoo.c)
resultará no uso do compilador errado.