本帖最后由 一只耳朵怪 于 2018-5-31 16:28 编辑
最近要在DM6467上面集成一个第三方的*.lib文件,这个.lib是第三方在CCS上编译出来的,且没有遵照xDM的标准。
现在我要集成到DM6467上面来,所以自己新建了一个IMGENC的Codec,对这个*.lib做了一个简单封装,使其遵循xDM的标准。然后在
ARM端调用xDM的接口,调用这个.lib的功能。
因此我在这个Codec的package.bld文件的最顶端添加了这一句话(假设这个.lib文件放在Codec目录下的./ThirdPart/ThirdPart.lib):
Pkg.attrs.lopts = "-l ./ThirdPart/ThirdPart.lib"
在编译整个.x64P文件(即Server)的最后出现了编译错误,内容如下(我要生成的.a64P文件叫'platerecognize.a64P',.x64P文件叫'PhocusALG.x64P' ):
undefined first referenced
symbol in file
--------- ----------------
_TH_RecogImage /home/Phocus1855/ALG_20111010/packages/unic/sdo/codecs/platerecognize/lib/platerecognize.a64P
_TH_InitPlateIDSDK /home/Phocus1855/ALG_20111010/packages/unic/sdo/codecs/platerecognize/lib/platerecognize.a64P
_TH_UninitPlateIDSDK /home/Phocus1855/ALG_20111010/packages/unic/sdo/codecs/platerecognize/lib/platerecognize.a64P
>> error: reloca
tion overflow occurred at address 0x00000048 in section
'.text' of input file 'platerecognize.o64P
(/home/Phocus1855/ALG_20111010/packages/unic/sdo/codecs/platerecognize/lib/platerecognize.a64P)'. The 29-bit PC-relative displacement 471141000 at this location is too large to fit into the 21-bit PC-Relative field; the destination address is too far away from the instruction. You may need to add a mask to the assembly instruction or use other target specific assembly features if you really only need the lowest 21 bits of this symbol. Please see the section on Relocation in the Assembly User's Guide.
>> error: relocation overflow occurred at address 0x000000cc in section
'.text' of input file 'platerecognize.o64P
(/home/Phocus1855/ALG_20111010/packages/unic/sdo/codecs/platerecognize/lib/platerecognize.a64P)'. The 29-bit PC-relative displacement 471140968 at this location is too large to fit into the 21-bit PC-Relative field; the destination address is too far away from the instruction. You may need to add a mask to the assembly instruction or use other target specific assembly features if you really only need the lowest 21 bits of this symbol. Please see the section on Relocation in the Assembly User's Guide.
>> error: relocation overflow occurred at address 0x00000224 in section
'.text' of input file 'platerecognize.o64P
(/home/Phocus1855/ALG_20111010/packages/unic/sdo/codecs/platerecognize/lib/platerecognize.a64P)'. The 29-bit PC-relative displacement 471140880 at this location is too large to fit into the 21-bit PC-Relative field; the destination address is too far away from the instruction. You may need to add a mask to the assembly instruction or use other target specific assembly features if you really only need the lowest 21 bits of this symbol. Please see the section on Relocation in the Assembly User's Guide.
>> error: symbol referencing errors - 'PhocusALG.x64P' not built
gmake[1]: *** [PhocusALG.x64P] Error 1
gmake: *** [packages/unic/sdo/servers/encode,.executables] Error 2
make: *** [servers] Error 2
我现在想知道是在DVSDK的编译环境下面如果在Codec里面调用*.lib文件,在编译阶段应该如何配置自己的编译脚本?
希望TI的专家们能予以回复。