如果使用 arm-poky-linux-gnueabi-gcc 在不同的文件夹中构建相同的代码,生成的二进制文件将具有不同的内容

If the same code is built at different folders using arm-poky-linux-gnueabi-gcc, the resulting binary will have different contents

我有一个源代码,我正在尝试针对 armv7 架构进行交叉编译,它正在编译并生成二进制文件。当我在不同的目录中编译相同的代码时,生成的二进制文件与之前的不同。 为什么我会得到这种差异?不仅是二进制文件,目标文件也发生了变化。 我正在使用 arm-poky-linux-gnueabi-gcc。我使用以下命令 "source /opt/fsl-imx-x11/4.1.15.1.1/environment...." 等创建的工具链。工具链也导出编译器设置 (CLFAGS, LDFLAGS) 。

这与交叉编译或 Yocto 无关,而仅仅是因为二进制文件将嵌入构建路径、时间戳和其他更改的内容。如果您想要 相同 的二进制文件,那么您需要阅读可重现的构建:

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