AnyChat技术支持论坛

标题: anychat_libvad.a库在xcode6 beta下Link失败问题 [打印本页]

作者: william2014    时间: 2014-6-19 17:28
标题: anychat_libvad.a库在xcode6 beta下Link失败问题
anychat_libvad.a库在xcode6 beta下Link失败问题,看下吧:


作者: admin    时间: 2014-6-19 17:44
您好,从图片来看,出错不是在libvad.a库中,可以将libvad.a库从工程中直接删除再试试看?
作者: admin    时间: 2014-6-20 16:49
您好,请问您是直接编译我们的示例工程出错吗?是哪一个版本的示例工程,AnyChat r4086?
作者: william2014    时间: 2014-6-20 17:02
admin 发表于 2014-6-20 16:49
您好,请问您是直接编译我们的示例工程出错吗?是哪一个版本的示例工程,AnyChat r4086?

不是编你们的示例工程,是用了你们SDK在我们的工程代码中,SDK是最新的了。在XCode 5以前的版本,都是OK的,现在更新了Xcode版本,出现错误。刚又试了下,删除你们的libvad.a文件后,的确是有错误,提示如下:
Undefined symbols for architecture i386:
  "_fwrite$UNIX2003", referenced from:
      _voAWB_dtx_enc_reset in libvo-amrwbenc.a(dtx.o)
      _voAWB_dtx_enc_init in libvo-amrwbenc.a(dtx.o)
      _wb_vad_reset in libvo-amrwbenc.a(wb_vad.o)
      _wb_vad_init in libvo-amrwbenc.a(wb_vad.o)
      _quant_5p_5N in libvo-amrwbenc.a(q_pulse.o)
      _quant_4p_4N in libvo-amrwbenc.a(q_pulse.o)
      _quant_6p_6N_2 in libvo-amrwbenc.a(q_pulse.o)
      ...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

作者: admin    时间: 2014-6-21 00:12
不是编你们的示例工程
在您的环境里面编译我们的标准示例代码是否OK呢?
作者: william2014    时间: 2014-7-4 10:40
admin 发表于 2014-6-21 00:12
在您的环境里面编译我们的标准示例代码是否OK呢?

你好,升级了Xcode 6 beta版,按照你们的给的方案试了下,也单独调试了你们的示例工程,问题依然存在,
Undefined symbols for architecture i386:
  "_fwrite$UNIX2003", referenced from:
      _voAWB_dtx_enc_reset in libvo-amrwbenc.a(dtx.o)
      _voAWB_dtx_enc_init in libvo-amrwbenc.a(dtx.o)
      _wb_vad_reset in libvo-amrwbenc.a(wb_vad.o)
      _wb_vad_init in libvo-amrwbenc.a(wb_vad.o)
      _quant_5p_5N in libvo-amrwbenc.a(q_pulse.o)
      _quant_4p_4N in libvo-amrwbenc.a(q_pulse.o)
      _quant_6p_6N_2 in libvo-amrwbenc.a(q_pulse.o)
      ...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

你们的_voAWB_dtx_enc_reset、_voAWB_dtx_enc_init这些方法是在哪里定义的?
作者: admin    时间: 2014-7-4 10:55
您好,这是xcode的一个Bug,解决方案如下:
1、添加如下代码到AppDelegate.h:
  1. #ifdef DEBUG
  2.     FILE *fopen$UNIX2003(const char *filename, const char *mode);
  3.     size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream);
  4. #endif
复制代码
2、添加如下代码到AppDelegate.m:
  1. #ifdef DEBUG
  2. FILE *fopen$UNIX2003(const char *filename, const char *mode) {
  3.     return fopen(filename, mode);
  4. }

  5. size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream) {
  6.     return fwrite(ptr, size, nitems, stream);
  7. }
  8. #endif
复制代码
可参考:
Code coverage with Xcode 4.2 - Missing files
http://stackoverflow.com/questio ... e-4-2-missing-files

Xcode6_beta Build Fix: Undefined Symbols _fwrite$UNIX2003
http://blog.ready4go.com/blog/2014/06/06/xcode6-beta-build-fix/

iOS dev: How to setup quality metrics on your Jenkins job?
http://blog.octo.com/en/jenkins- ... rd-ios-development/



作者: admin    时间: 2014-7-7 10:04
您好,请问上面的问题解决了吗?
作者: william2014    时间: 2014-7-8 09:55
本帖最后由 william2014 于 2014-7-8 09:56 编辑

呵呵,你们真热心,不过按照你们说的,并没有解决问题,在你们的demo里面直接添加后如附件中图示:

屏幕快照 2014-07-08 上午9.55.37.png (163.46 KB, 下载次数: 14754)

屏幕快照 2014-07-08 上午9.55.37.png

作者: william2014    时间: 2014-7-8 15:37
admin 发表于 2014-7-7 10:04
您好,请问上面的问题解决了吗?

呵呵,你们真热心,不过按照你们说的,并没有解决问题,在你们的demo里面直接添加后如附件中图示:

2014-07-08 上午9.51.34.png (105.73 KB, 下载次数: 14699)

2014-07-08 上午9.51.34.png

作者: 廖斌    时间: 2014-7-8 16:22
william2014 发表于 2014-7-8 15:37
呵呵,你们真热心,不过按照你们说的,并没有解决问题,在你们的demo里面直接添加后如附件中图示:

您好,方便的话,把您的工程上传,我们看下是什么问题。
作者: william2014    时间: 2014-7-9 17:28
廖斌 发表于 2014-7-8 16:22
您好,方便的话,把您的工程上传,我们看下是什么问题。

我今天用你们最新的ios demo  按照你们的方法试了下,你们的demo居然编过了,喜出望外啊,真心感谢你们的耐心解答~




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3