在Xcode上运行腾讯云Demo或者开发者自己的项目,编译过程中有时会报错。最常见的是两种:
linker command failed with exit code 1 (use -v to see invocation)
。场景1
找不到SDK头文件。如下图所示,报错信息显示xxx file not found
一般就是该错误。
解决方法:
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工程编译SDK报 duplicate symbols 错误,冲突的符合为bcm.o和rsa.o。
解决方法:
Xcode工程配置 Build Settings 下 Dead Code Stripping
需要设置成YES。
场景5
Xcode工程 bitcode 设置错误。如下图所示,报错信息显示dose not contain bitcode
一般就是该错误。
解决方法:
注意iOS端 TXLiteAVSDK 精简版之外,其它版本都是不支持bitcode的,需要设置为NO
才能成功运行和打包。
iOS开发目前的常用语言是Objective C
和Swift
,二者的编译都是依赖于Clang + LLVM
。简单来说编译的过程如下:
编译器配置->标准库与头文件确认->确定依赖关系->头文件的预编译->预处理->生成中间代码->生成汇编代码->生成机器码->链接->成可执行文件
所以如果遇到找不到头文件,缺少依赖库,重复定义了类和方法,或是编译器配置不当等情况下,都会产生编译报错。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。