Разница между toolchain-файлами и переменными окружения при кросс-компиляции заключается в том, что toolchain-файлы содержат информацию о целевой системе, а переменные окружения указывают на кросс-компилятор. 12
Toolchain-файл позволяет сообщить CMake о целевой платформе для поддержки кросс-компиляции конкретного программного проекта. 1 В этом файле указывается исполняемый файл компилятора C в виде полного пути или только имени файла. 1 Преимущество такого подхода в том, что информация о целевой системе полностью содержится в одном файле и не зависит от переменных окружения. 1
Переменные окружения, например CC, используются для указания имени кросс-компилятора. 2 Например, можно установить значение CC=i386-pc-linux-gnu, чтобы использовать соответствующий компилятор. 5
Таким образом, toolchain-файл содержит всю необходимую информацию о целевой системе, а переменные окружения фокусируются на настройке компилятора для конкретной задачи.