0

通过 pod 安装 MobileVLCKit 在我的 swift 项目中出现链接器错误。

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_VLCMediaPlayer", referenced from:
      objc-class-ref in StreamingController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我做了以下步骤

  1. 在 Build-Phases -> Link Binaries -> libstdc++.6.tbd 中安装 Vlckit 后解决构建项目的错误

  2. 在上一步 BuildSettings ->'EnableBitcode = No' 之后解决 apple-linker 错误

  3. 在 Bridging-Header 文件中,执行#import <MobileVLCKit/MobileVLCKit.h>

在“BuildSettings -> other_linker_flags”中,这个 MobileVLCKit 框架也没有显示,虽然我可以在“Pods”文件夹中看到“MobileVLCKit”文件夹


编辑

通过执行以下步骤,我能够删除此错误并找到“MobileVLCKit”:

  1. 在 Build_Settings -> Other_Linker_Flags 中,添加:-framework "MobileVLCKit"
  2. 在 Build_Settings -> Other_Linker_Flags 中,添加:-l"bz2"
  3. 在 Build_Settings -> Other_Linker_Flags 中,添加:-l"iconv"

但随后这些修复从 AVSLibrary 框架中使用的其他框架“libavsobjc.stripped.a”生成了其他链接器错误,该框架在应用程序中用于其他目的。

我希望 Vlc 和 AVSLibrary 应该共存。有任何想法吗 ?

4

1 回答 1

1

我遇到了类似的问题,为此付出了很多努力。

  1. 创建一个虚拟 Xcode 项目,使用可可豆荚下载 MobileVLCkit。
  2. 将虚拟项目中下载的“MobileVLCKit.framework”文件复制到项目根文件夹中。
  3. 转到项目的目标构建设置并将以下行添加到“标题搜索路径”(也添加引号)“$(PROJECT_DIR)/MobileVLCKit.framework/Headers”“$(BUILT_PRODUCTS_DIR)”
  4. 在项目的目标构建设置中,将以下行添加到框架搜索路径(也添加引号)“$(SRCROOT)/MobileVLCKit.framework”“$(PROJECT_DIR)”
  5. 在其他链接器标志中添加以下行 -l"bz2" -l"iconv" -framework "MobileVLCKit"
  6. 在 General > Linked Frameworks and Libraries 通过单击 + 图标 libstdc++.6.tbd 添加以下库
  7. 最重要的是添加对 Bridging-Header.h 的引用,包括以下行 #import "MobileVLCKit/MobileVLCKit.h"
  8. 通过键入 VLCMediaPlayerDelegate 进行测试,看看是否自动完成。如果是这样,请通过将他们指向此处来帮助他人,否则请追溯您的步骤以查看您错过了什么。

希望有帮助。我能够通过下面给出的链接解决这个问题。来源:https ://forum.videolan.org/viewtopic.php?f=32&t=137065

于 2018-02-16T02:28:40.057 回答