同样的工程IAR编译出来的文件却不同?

2019-07-14 14:57发布

工程在E盘根目录编译,生成bin文件;然后把工程复制到D盘根目录,再编译生成bin文件,对比两个bin文件发现不同。
这是使用beyond compare比对的结果,有2处差异,这里只截取了一处,另一处是类似的,bin文件包含路径信息?


再把工程复制到D盘test目录下编译,生成的bin文件和E盘根目录下编译生成的bin进行比对,结果差异就很大了


头文件包含都是使用的相对路径。为了确保无误,试过在工程复制到另外的路径之后,把原来路径下的工程改名,结果还是这样。
IAR版本是8.11,编译没有任何警告和错误。这问题有什么可能?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
ldd1211_
1楼-- · 2019-07-14 21:26
你是直接拷贝过去就编译了吗?没有修改优化或其他设置吧。bin文件里面肯定不会包含目录信息的,但生成的中间文件就没准了,没有研究过,你可以在试试先清除在编译,或rebuild,或把obj、List、Exe删除之后在编译。
毛毛lallala
2楼-- · 2019-07-15 00:23
你这个是生成的axf文件吧,要确认bin文件是否一样可以用工具转一下,或者程序烧写进去之后读出来两次的bin文件是否有差异。
胡德胜快回答
3楼-- · 2019-07-15 01:30
如果代码里使用了宏:__FILE__,
这一点应该可以理解.
jsgssg
4楼-- · 2019-07-15 03:49
 精彩回答 2  元偷偷看……
jsgssg
5楼-- · 2019-07-15 08:43
毛毛lallala 发表于 2018-12-27 08:45
你这个是生成的axf文件吧,要确认bin文件是否一样可以用工具转一下,或者程序烧写进去之后读出来两次的bin文件是否有差异。

是在option里面output converter选raw binary生成bin文件的;也试过生成intel hex,比对结果也是不一样。
jsgssg
6楼-- · 2019-07-15 11:21
胡德胜快回答 发表于 2018-12-27 09:02
如果代码里使用了宏:__FILE__,
这一点应该可以理解.

所有有关于__FILE__的宏定义都屏蔽掉了的

一周热门 更多>