当前位置: 代码迷 >> Iphone >> 编译出来的静态库,真机下运行报错
  详细解决方案

编译出来的静态库,真机下运行报错

热度:4201   发布时间:2013-02-26 00:00:00.0
编译出来的静态库,真机上运行报错
先说明下:
我使用的是Xcode4.5+IOS6.0

为了把一些东西封装好,我自己弄了个静态库,编译啥都通过了,将模拟器下编译出来的.a库文件在其它工程(A)中引用,可以正常使用(模拟器情况下正常)。
可是把真机下编译出来的.a库文件在其它工程中引用,真机情况下就编译不过了。
报错:

Undefined symbols for architecture armv7:
  "_WebRtcIlbcfix_DecoderCreate", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_EncoderFree", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_Decode", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_DecoderInit", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_DecodePlc", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_Encode", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_EncoderCreate", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_DecoderFree", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
  "_WebRtcIlbcfix_EncoderInit", referenced from:
      CMedia::Process(void*) in sxLibDial.a(media.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)


我在终端查看了,sxLibDial.a是armv7的。
求教各位,真机下应该如何编译和使用静态库?
先谢谢各位啦~~~~~

------解决方案--------------------------------------------------------
模拟器是i386体系的,你确定是armv7编译出来的库?或者可能sxLibDial有其他库的依赖
------解决方案--------------------------------------------------------
i386编译出来理论上也要的,你可以检查下项目配置,看模拟器和真机的库的搜索路径这类有没有差别,
------解决方案--------------------------------------------------------
编译出来的。a文件也分模拟器和真机两种啊,在真机上运行的时候,选择真机的。a文件才可以啊
  相关解决方案