适用于iOS的MobileVLCKit无法构建(pod和Framework)

时间:2015-06-23 17:58:31

标签: ios cocoapods vlc undefined-symbol

在构建包含MobileVLCKit的项目时,构建失败,并出现“架构arm64的未定义符号”中的76-100个错误:

前几个例如:

"std::runtime_error::runtime_error(std::string const&)", referenced from:
      libebml::CRTError::CRTError(std::string const&, int) in MobileVLCKit(StdIOCallback.o)
  "std::runtime_error::runtime_error(std::string const&)", referenced from:
      libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)
      libebml::IOCallback::readFully(void*, unsigned long) in MobileVLCKit(IOCallback.o)
  "std::basic_ios<char, std::char_traits<char> >::widen(char) const", referenced from:
      dash::mpd::Representation::contextualize(unsigned long, std::string const&, adaptative::playlist::BaseSegmentTemplate const*) const in MobileVLCKit(libdash_plugin_la-Representation.o)

这可以从cocoapod和从这里下载的框架中发生:http://nightlies.videolan.org/build/ios/

此错误不会在此处的示例项目中复制: http://feepk.net/2014/12/02/mobilevlckit-and-vlckit-part-1/

我已经检查了所有链接的库和链接器标志,所有内容似乎都是有序的。想法?

2 个答案:

答案 0 :(得分:10)

在查看了对帖子的评论之后我发现了问题 - 由于iOS 6.1和7.0中使用的C ++运行时发生了变化,部署目标必须设置为6.1。

如果其他人遇到此问题,我会留下这个。

如果您不想更改部署目标,还可以添加空的.mm文件以强制Xcode与C ++链接(通过here

答案 1 :(得分:2)

我用 libstdc ++。6.0.9.dylib 替换 libstdc ++。dylib 解决了这个问题。可以通过这种方式将部署目标设置为所需版本。 (Reference Link: Chinese blog