我正在使用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
发布于 2013-10-22 17:17:58
看一下您的数据初始化。摘自“编写双字节序编译器”:
Data Initialization
在BEC中,指针数据类型也可以用字节顺序来赋值。因此,可能存在指针具有与目标平台相反的字节顺序的情况。字节顺序相反的指针必须在初始化时进行字节交换。当指针由链接时间常量初始化时,这是一个挑战,因为这些常量在编译时是未知的,稍后会在链接阶段解析。
来源:http://www.drdobbs.com/architecture-and-design/writing-a-bi-endian-compiler/240003090
如果它不能解决您的问题,请考虑向编译器团队开发人员提交一个bug问题。这可能是内部的缺陷。
https://stackoverflow.com/questions/19512093
复制相似问题