首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成SKMaps.Framework时链接错误

集成SKMaps.Framework时链接错误
EN

Stack Overflow用户
提问于 2015-05-14 06:43:54
回答 2查看 178关注 0票数 2

在试图集成SKMaps框架时获取这些错误

代码语言:javascript
复制
Undefined symbols for architecture x86_64:

  "CRouteTestManager::calculateRoute(NGRouteInput const&, std::__1::shared_ptr<CRoute>&)", referenced from:

      PoiTrackerTest::createRoute() in SKMaps(PoiTrackerTest.o)

  "_gpTestRoutesManager", referenced from:

      PoiTrackerTest::createRoute() in SKMaps(PoiTrackerTest.o)
      createNavigationObject(int) in SKMaps(NavigationTest.o)


ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请帮我解决这个错误。

代码语言:javascript
复制
Environment :
Xcode 6.3.1, Mac OSX 10.10.3
Deployment Target iOS7.0

支持斯威夫特

我遵循这个指南:http://developer.skobbler.com/getting-started/ios

还添加了CoreMotion.framework,因为还存在与该框架相关的链接错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-10 16:08:07

链接器误差的原因

这似乎是链接器标志-all_load的结果,它可能是通过CocoaPod添加到项目中的。在很少的情况下,只有定义了类别的静态库才需要此标志。否则,它可以安全地从您的构建中删除。见这里的讨论:

load linker flag do?

从该讨论的注释部分的链接中可以看到,这个以前需要-all_load的bug已经从XCode 4中修复了。

Objective-C categories in static library

可能解释

这个框架中定义了大量测试,但是它们的依赖项不包含在框架中。当链接器被迫解析和链接所有依赖项时,它会出错,因为它找不到它们。基本上,应该清理库,使其不包含这些不必要的符号。目前的工作是删除-all_load

票数 1
EN

Stack Overflow用户

发布于 2016-01-21 11:08:07

面对同样的问题。删除-all_load标志没有帮助,所以我继续研究并找到了一个解决方案:

尽管Skobbler声明需要链接libc++库,但实际上您需要链接libstdc++.6库。请注意,链接libstdc++不会有帮助。

P.S.Xcode 6.4,iOS SDK 8.4

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30230976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档