AVR-GCC Windows 对比 Linux

AVR-GCC Windows vs. Linux

我正在开发一个 Arduino 项目,该项目是在 Windows 机器上使用 Arduino Builder 开发的。有了候选版本后,我开始开发一个 Linux docker 容器,一旦它被推送到我的 git 远程,它就会自动编译这个项目。然而,我注意到 Linux 容器编译的二进制文件与 Windows 机器的编译二进制文件不同,尽管 Arduino 版本和编译标志相同。这应该发生吗? AVR-GCC 不应该做出相等的交叉编译结果吗?

提前致谢。

好的,所以在深入研究这个问题并确认工具链具有相同的版本(尽管主机操作系统不同)之后,我发现在 Linux 上我没有给链接器 -flto 启用 link-time 优化器的标志,同时在 Windows.

上执行此操作

所以总而言之,我确实有一个配置错误,现在代码在两个主机操作系统上编译时都能顺利运行。