SOP TRTC SDK 仪表盘 Android TRTC 发送自定义采集的视频数据 Android TRTC 发送自定义采集音频解决方案 Android TRTC 实现横屏视频通话 iOS端 TRTC 发送自定义采集视频解决方案 iOS端 TRTC 发送自定义采集音频解决方案 APNS推送 脏字过滤 TXLiteAVSDK中使用 AVAudioSession 问题总结 AndroidStudio编译SDK报错 RoomService部署验证 Xcode编译SDK报错 iOS编译库冲突问题 iOS端移动直播自定义采集实现 iOS端TXLiteAVSDK与IMSDK 3.x集成冲突报错问题 Android端TXLiteAVSDK与IMSDK 3.x集成冲突报错问题 Android端LiteIM sdk升级IM4.x版本报错问题 移动直播iOS 12兼容问题 如何实现好的画质 如何计算PCM音量大小 使用播放器播放视频有黑边 直播拉流播放失败 直播拉流端卡顿现象 短视频上传失败 移动直播SDK对接第三方美颜库 移动直播连麦解决方案 Android移动直播推自定义采集的视频数据 Android移动直播推自定义采集的声音数据 Android直播播放如何获取YUV数据 Android直播播放如何自定义渲染 实时音视频画面黑屏 实时音视频订阅流显示 iOS 12默认新编译系统下文件名冲突问题 TXLiteAVSDK指标监控 进阶:小程序实时音视频参数透传 移动直播 Android 9.0 无法拉流问题 移动直播推流事件回调 移动直播拉流事件回调 短视频实现视频缩略图列表转GIF功能 roomService加入群组时报错invalid group id NTP时间戳转换 提示Role not exists 角色不存在 如何播放背景音乐 iOS端短视频添音频相关问题总结 Web同步终端离线推送TIMOfflinePushInfo说明文档 web端自定义消息发送 web端同步终端的已读回执 web端对群组内用户禁言操作 TRTC v2混流接口setMixTranscodingConfig使用指引

Xcode编译SDK报错解决方法

发布日期:2018年6月19日 更新日期:2018年6月19日 贡献者:zilongye

常见的报错

在Xcode上运行腾讯云Demo或者开发者自己的项目,编译过程中有时会报错。最常见的是两种:

  • 找不到SDK头文件(以下解决方法1)
  • 链接错误报错信息显示linker command failed with exit code 1 (use -v to see invocation)

解决方法

方法1

找不到SDK头文件。如下图所示,报错信息显示xxx file not found一般就是该错误。

解决方法:

  • 如果是运行腾讯云Demo,注意编译的target设置正确。 比如下载的TXLiteAVSDK_Professional.framework,编译的target就是TXLiteAVDemo_Professional。
  • 如果是开发者自己的工程,注意检查Build Settings->Search Paths->User Header Search Paths中添加头文件搜索路径是否正确。

方法2

缺少SDK需要的系统依赖库。如下图所示,报错信息显示undefined symbols一般就是该错误。

解决方法:

参考文档添加所有需要加入的依赖库:https://cloud.tencent.com/document/product/454/7876#2.E3.80.81.E6.B7.BB.E5.8A.A0framework。

方法3

Xcode工程Other linker flags设置错误。如下图所示,报错信息显示duplicate symbol一般就是该错误。

解决方法:

Other linker flags需要设置成-ObjC,不能有-all_load-force_load

方法4

Xcode工程bitcode设置错误。如下图所示,报错信息显示dose not contain bitcode一般就是该错误。

解决方法:

注意iOS端TXLiteAVSDK的重命名版本和商业版是不支持bitcode的,需要设置为NO才能运行起来。

原理解释

iOS开发目前的常用语言是Objective CSwift,二者的编译都是依赖于Clang + LLVM。简单来说编译的过程如下:

编译器配置->标准库与头文件确认->确定依赖关系->头文件的预编译->预处理->生成中间代码->生成汇编代码->生成机器码->链接->成可执行文件

所以如果遇到找不到头文件,缺少依赖库,重复定义了类和方法,或是编译器配置不当等情况下,都会产生编译报错。

参考资料

  1. 编译详细过程及原理参考:https://blog.csdn.net/Hello_Hwc/article/details/53557308
  2. 编译器的工作过程:http://www.ruanyifeng.com/blog/2014/11/compiler.html
  3. other linker flags参数的作用参考:https://blog.csdn.net/iosfengguibin/article/details/52086435

results matching ""

    No results matching ""