我正在使用armcc
和armlink
来编译和链接我的程序。编译源代码后,我尝试用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
答案 0 :(得分:0)
看看你的数据初始化。从“编写双端编译器”:
数据初始化
在BEC中,指针数据类型也可以用一个字节来归属 订购。结果,可能存在指针具有的情况 相反的字节顺序作为目标平台。相反的指针 字节顺序必须在初始化时进行字节交换。这提出了一个 指针由链接时间常量初始化时的挑战,因为 这些常量在编译时是未知的,稍后会解决 在链接阶段。
来源:http://www.drdobbs.com/architecture-and-design/writing-a-bi-endian-compiler/240003090
如果它没有解决您的问题,请考虑向编译器团队dev提交错误问题。这可能是一个内部错误。