Brew中使用C++需要注意的事项

ARM 147浏览

最近碰到一个奇怪的问题,需要将C++类打包成一个类库,不过在VC通过的前提下,使用ARM出现了链接错误:

 

TARGET CPPLab.elf

C:/ARM/ADSv1_2/bin/armlink -o CPPLab.elf -ropi -rwpi -entry 0x8000 AEEMOD~1.o CPPLab.o -first AEEMod_Load

Error: L6265E: Non-RWPI Section libspace.o(.bss) cannot be assigned to PI Exec region ER_ZI.

Error: L6248E: libspace.o(.text) in PI region 'ER_RO' cannot have address type relocation to __libspace_start in PI region 'ER_ZI'.

Finished: 0 information, 0 warning and 2 error messages.

NMAKE : fatal error U1077: “C:/ARM/ADSv1_2/bin/armlink” : 返回代码“0x1”

Stop.

 

经过对比之后,才想到,如果在工程中有出现“类”时,则一定要在这些文件里包含到 new delete这些操作符的重定义,因为Brew开发时,是没有这些语言要素的,也就会报上面那些奇怪的错误。