iDoubs的编译问题以及解决方案
去年的时候编译idoubs项目,用的xcode4.0的版本,没有问题。后面xcode也没有升级,碰到问题也没有处理
最近使用xcode4.5又遇到了问题,主要是编译选项的设置问题,和项目本身没有关系
问题一
主要是有一个id opaque的变量 unknown..
还有NgnContacts的八个错误,主要是把编译选项改为LLVM4.2即可,之前的默认选项是Apple LLVM4.1这个编译有问题
问题二
本以为可以编译成功了,但是最后报了120个错误
Undefined symbols for architecture armv7s:
"_vpx_codec_get_caps", referenced from:
_tdav_codec_vp8_open in libtinyDAV.a(tdav_codec_vp8.o)
"_avcodec_alloc_context", referenced from:
_tdav_codec_h261_open in libtinyDAV.a(tdav_codec_h261.o)
_tdav_codec_h263_open in libtinyDAV.a(tdav_codec_h263.o)
_tdav_codec_h264_open in libtinyDAV.a(tdav_codec_h264.o)
_tdav_codec_mp4ves_open in libtinyDAV.a(tdav_codec_mp4ves.o)
_tdav_codec_theora_open in libtinyDAV.a(tdav_codec_theora.o)
"_Init_Pre_Process", referenced from:
_tdav_codec_g729ab_open in libtinyDAV.a(tdav_codec_g729.o)
"_speex_uwb_mode", referenced from:
_tdav_codec_speex_open in libtinyDAV.a(tdav_codec_speex.o)
"_speex_buffer_resize", referenced from:
_tdav_consumer_audiounit_prepare in libtinyDAV.a(tdav_consumer_audiounit.o)
_tdav_producer_audiounit_prepare in libtinyDAV.a(tdav_producer_audiounit.o)
"_avcodec_init", referenced from:
_tdav_init in libtinyDAV.a(tdav.o)
"_avcodec_open", referenced from:
_tdav_codec_h261_open in libtinyDAV.a(tdav_codec_h261.o)
_tdav_codec_h263_open in libtinyDAV.a(tdav_codec_h263.o)
_tdav_codec_h264_open in libtinyDAV.a(tdav_codec_h264.o)
_tdav_codec_mp4ves_open in libtinyDAV.a(tdav_codec_mp4ves.o)
_tdav_codec_theora_open in libtinyDAV.a(tdav_codec_theora.o)
_tdav_codec_theora_decode in libtinyDAV.a(tdav_codec_theora.o)
"_SSL_read", referenced from:
_tnet_tls_socket_recv in libtinyNET.a(tnet_tls.o)
"_jitter_buffer_update_delay", referenced from:
_tdav_speex_jitterbuffer_get in libtinyDAV.a(tdav_speex_jitterbuffer.o)
"_speex_resampler_process_int", referenced from:
_tdav_speex_resampler_process in libtinyDAV.a(tdav_speex_resampler.o)
"_SSL_CTX_set_default_passwd_cb_userdata", referenced from:
_tnet_tls_socket_init in libtinyNET.a(tnet_tls.o)
类似于这样的错误,当找这些的时候,我看到了微信的编译选项的问题,猜测可能是同样的原因导致的
上截图
去掉armv7s,armv7s是专门为A6处理器而设置的优化,这里不需要。