osx - WebRTC 链接问题

Posted

技术标签:

【中文标题】osx - WebRTC 链接问题【英文标题】:osx - WebRTC linkage issue 【发布时间】:2016-01-20 16:09:39 【问题描述】:

我正在尝试将 WebRTC 集成到一个 OSX 桌面应用程序中,但在尝试与 webRTC 库链接时遇到了一些错误。问题是:

Undefined symbols for architecture x86_64:
  "_AVMediaTypeMuxed", referenced from:
  cricket::GetAVFoundationVideoDevices(std::vector<cricket::Device, std::allocator<cricket::Device> >*) in libWebRTC-arm64-debug.a(libjingle_media.macdevicemanagermm.o)

这告诉我,我没有在我的libjingle_media.a 中定义这个符号,这是真的:

$ nm libjingle_media.a | grep _AVMediaTypeMuxed
warning: /Applications/Xcode64.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
             U _AVMediaTypeMuxed

我已经使用这个标志构建了 WebRTC:

GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1 OS=mac target_arch=x64"
GYP_GENERATORS="ninja"
GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac"

当然还有 ninja,之前运行过 gclient runhooks。知道这是怎么回事吗?

【问题讨论】:

【参考方案1】:

要解决这个问题,你需要使用一个特定的框架来实现这个功能,在这个例子中是一个名为AVFoundation的框架

【讨论】:

以上是关于osx - WebRTC 链接问题的主要内容,如果未能解决你的问题,请参考以下文章

由于未定义对具有 std::string 的方法的引用,链接 webrtc-native 时出错

OSX 的 Cython 链接错误

OSX链接错误的Fabric Answers

OSX 命令行应用程序链接器错误

在 unix (linux/osx) 中创建的符号链接是不是仍然可以在 Windows 中工作?

用于 USB 系绳和 WiFi 的 OSX 链接聚合?