同样的工程IAR编译出来的文件却不同?
工程在E盘根目录编译,生成bin文件;然后把工程复制到D盘根目录,再编译生成bin文件,对比两个bin文件发现不同。这是使用beyond compare比对的结果,有2处差异,这里只截取了一处,另一处是类似的,bin文件包含路径信息?
再把工程复制到D盘test目录下编译,生成的bin文件和E盘根目录下编译生成的bin进行比对,结果差异就很大了
头文件包含都是使用的相对路径。为了确保无误,试过在工程复制到另外的路径之后,把原来路径下的工程改名,结果还是这样。
IAR版本是8.11,编译没有任何警告和错误。这问题有什么可能?
本帖最后由 toofree 于 2018-2-5 00:49 编辑
对IAR不熟悉,但是从BIN文件结果来看,连续的4字节中有一个或两个不一样的,这个应该是中断向量表。
把你的两个.bin文件传上来,再把各自的.map文件也传上来。所有的信息在.map文件中都能找解释。:):)
我的工程全部相对路径,在keil5和IAR ARM 7.80都换盘符试过了,木有问题,编译出来的文件完全一致。
你是直接拷贝过去就编译了吗?没有修改优化或其他设置吧。bin文件里面肯定不会包含目录信息的,但生成的中间文件就没准了,没有研究过,你可以在试试先清除在编译,或rebuild,或把obj、List、Exe删除之后在编译。 你这个是生成的axf文件吧,要确认bin文件是否一样可以用工具转一下,或者程序烧写进去之后读出来两次的bin文件是否有差异。 bin文件包含路径信息?
如果代码里使用了宏:__FILE__,
这一点应该可以理解. yu0405jie 发表于 2018-2-5 09:05
你是直接拷贝过去就编译了吗?没有修改优化或其他设置吧。bin文件里面肯定不会包含目录信息的,但生成的中 ...
直接拷贝,没有修改任何设置;也试过rebuild,试过删除release文件夹、debug文件夹、setting文件夹,再编译;结果都是一样的。 andeyqi 发表于 2018-2-5 09:29
你这个是生成的axf文件吧,要确认bin文件是否一样可以用工具转一下,或者程序烧写进去之后读出来两次的bin ...
是在option里面output converter选raw binary生成bin文件的;也试过生成intel hex,比对结果也是不一样。 Mandelbrot_Set 发表于 2018-2-5 10:29
如果代码里使用了宏:__FILE__,
这一点应该可以理解.
所有有关于__FILE__的宏定义都屏蔽掉了的 toofree 发表于 2018-2-5 00:19
对IAR不熟悉,但是从BIN文件结果来看,连续的4字节中有一个或两个不一样的,这个应该是中断向量表。
把你的 ...
我怀疑是优化的问题,以及路径
页:
[1]
2