【问题标题】:Unity3D Integration in NativeApp - Keyboard.mm compiles but UnityKeyboard_GetText undefined symbolNativeApp 中的 Unity3D 集成 - Keyboard.mm 编译但 UnityKeyboard_GetText 未定义符号
【发布时间】:2016-05-09 17:29:25
【问题描述】:

我成功地将 Unity3D 项目转换为更像 NativeApp(Storyboard's),并且可以切换到 Unity。

现在我正在尝试将 Unity3D 集成到 NativeApp 中。在现有 NativeApp 中仔细复制 Unity3D XCode 项目。除了这个毫无意义的非常令人沮丧的错误之外,一切都很顺利:

Undefined symbols for architecture armv7:
  "UnityKeyboard_GetText(std::string*)", referenced from:
      KeyboardOnScreen::getText() const in libiPhone-lib.a(iPhoneKeyboard.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

对 libiPhone-lib.a 的检查显示如下:

libiPhone-lib.a: Mach-O universal binary with 2 architectures
libiPhone-lib.a (for architecture armv7):       current ar archive random library
libiPhone-lib.a (for architecture i386):        current ar archive random library

我已验证 Keyboard.mm 正在编译,它包含所谓的未定义引用。

更新:

基本上缺少一些关键的项目构建设置。最重要的是链接到(std 与 gnu)的 C++ 库和 Unity 项目的运行脚本。我将在两天后发布更具体的答案。

【问题讨论】:

  • 您是否遇到过可以写下答案的解决方案?我们遇到了同样的问题。
  • 我忘了这个。该解决方案与更改链接的 C++ 库有关。下次我有代码时,我可以找到你的确切设置。基本上为了让你现在开始,从 Unity 导出一个 IOS 项目,然后将该项目中的 C/C++ 设置与你的进行比较。链接的编译器和 C/C++ 库必须相同。
  • 我的同事从你之前留下的线索中弄清楚了。谢谢!
  • 您能分享一下解决方案吗?我遇到了同样的问题。

标签: ios xcode architecture unity3d


【解决方案1】:

您必须为统一生成的项目禁用 C++ 11 支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 2010-12-31
    • 1970-01-01
    • 2015-05-23
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多