Основное отличие состоит в том, что с помощью "обычного компилятора" вы можете запускать скомпилированный исполняемый файл прямо на компьютере, на котором его скомпилировали. С кросс-компилятором вам придется каким-то образом загрузить его в систему, используя целевую платформу, чтобы запустить его и посмотреть, работает ли он. (Или используйте какой-нибудь эмулятор или ВМ).
Это единственная большая разница, правда. Это добавляет дополнительный шаг или два в вашем цикле edit-compile-debug. Это может быть немного боли. С другой стороны, обычно кросс-компиляторы используются для систем реального времени или встроенных систем, где вероятным результатом ошибки является полный сбой системы. Если это может произойти, было бы больше боли работать в вашей системе разработки, поскольку вам постоянно приходилось бы ждать перезагрузок и перезапускать ваш редактор, перезагружать рабочие файлы в ваш редактор и т. Д.