使用armcc与前面的对象相反的字节顺序

时间:2013-10-22 07:52:08

标签: c linker fatal-error endianness armcc

我正在使用armccarmlink来编译和链接我的程序。编译源代码后,我尝试用armlink命令链接它们,但是我收到了这个错误:

Fatal error: ./Release/Source/BookCity/bookcity_Protocol.o has the opposite byte order to the preceding objects.

这个错误意味着什么?如何更改armcc中的字节顺序?

这是我的链接命令:

armlink -bin -o ./cis-0.123.bin ../../Lib/X2API.alf ../../Lib/X2DeviceB.alf ../../Lib/X2Font.alf ../../Lib/X2PPPTCP.alf ./Release/Source/BookCity/bookcity_Protocol.o ./Release/Source/BookCity/bookcity_configuration.o ./Release/Source/BookCity/bookcity_initialization.o ./Release/Source/BookCity/bookcity_transactions.o ./Release/Source/Cash/cash_configuration.o

1 个答案:

答案 0 :(得分:0)

看看你的数据初始化。从“编写双端编译器”:

  

数据初始化

     

在BEC中,指针数据类型也可以用一个字节来归属   订购。结果,可能存在指针具有的情况   相反的字节顺序作为目标平台。相反的指针   字节顺序必须在初始化时进行字节交换。这提出了一个   指针由链接时间常量初始化时的挑战,因为   这些常量在编译时是未知的,稍后会解决   在链接阶段。

来源:http://www.drdobbs.com/architecture-and-design/writing-a-bi-endian-compiler/240003090

如果它没有解决您的问题,请考虑向编译器团队dev提交错误问题。这可能是一个内部错误。