Как поручить CMake использовать компилятор архитектуры сборки
При использовании 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)
приведет к использованию неправильного компилятора.