编译出来的静态库,真机下运行报错
编译出来的静态库,真机上运行报错
先说明下:
我使用的是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文件才可以啊
先说明下:
我使用的是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文件才可以啊