庄永 发表于 2024-1-20 19:57:23

同样的编译器和编译器配置编译结果不一样

同一个MDK工程,使用MDK编译得到一个HEX文件;通过VSCODE+EIDE导入工程后,使用和MDK使用的相同的编译器和编译器配置,得到另一个HEX文件,结果两个文件执行功能一样,但是文件内容不一致。有大佬知道怎么回事吗?

emwin 发表于 2024-1-20 23:25:40

建议反汇编比对分析。IAR遇到过类似问题,后来发现是编译器Bug。

庄永 发表于 2024-1-21 20:17:18

emwin 发表于 2024-1-20 23:25
建议反汇编比对分析。IAR遇到过类似问题,后来发现是编译器Bug。

反汇编是不一样的

eric2013 发表于 2024-1-22 00:32:31

这个建议比较bin文件。

庄永 发表于 2024-1-22 09:28:44

eric2013 发表于 2024-1-22 00:32
这个建议比较bin文件。

比较过bin文件,也有一些不一样。

skyshine 发表于 2024-1-22 14:48:57

确定所有编译配置都改成一样了吗,比如RAM/ROM布局这类
https://em-ide.com/zh-cn/docs/getting-started/import_prj

庄永 发表于 2024-1-22 15:50:33

破案了,MDK链接的时候.o文件顺序是按照工程里面文件顺序来的,但是EIDE是将所有文件(带路径)排序以后再链接的,所以结果不一样。

emwin 发表于 2024-1-24 20:17:11

如果只是链接问题,map文件里的输出会一样

庄永 发表于 2024-1-24 22:32:49

emwin 发表于 2024-1-24 20:17
如果只是链接问题,map文件里的输出会一样

链接顺序不一样,map文件也会不一样的。
页: [1]
查看完整版本: 同样的编译器和编译器配置编译结果不一样