Если один и тот же код собран в разных папках с использованием arm-poky-linux-gnueabi-gcc, полученный бинарный файл будет иметь разное содержимое

У меня есть исходный код, и я пытаюсь сделать кросс-компиляцию для архитектуры armv7, она компилируется и генерирует двоичный файл. Когда я компилирую один и тот же код в другом каталоге, сгенерированные двоичные файлы отличаются от предыдущего. Почему я получаю эту разницу? Не только двоичный, объектный файл также меняется. Я использую arm-poky-linux-gnueabi-gcc. Цепочка инструментов, которую я создаю, используя следующую команду "source /opt/fsl-imx-x11/4.1.15.1.1/environment...." и т. Д. Цепочка инструментов также экспортирует настройки компилятора (CLFAGS, LDFLAGS) .

1 ответ

Решение

Это не имеет ничего общего с кросс-компиляцией или Yocto, а просто потому, что двоичные файлы будут встраивать путь сборки, временные метки и другие изменения. Если вы хотите, чтобы двоичные файлы были идентичными, вам нужно ознакомиться с воспроизводимыми сборками:

https://reproducible-builds.org/ https://wiki.yoctoproject.org/wiki/Reproducible_Builds

Другие вопросы по тегам