7

我正在编写一个使用 OpenMP 的简单跨平台库,但我不知道如何在 iPhone 应用程序中对其进行测试。
我正在运行OS X,使用GCC 4.7,我将它编译为静态库,我还设法将它链接在一起libgomp.a并将其添加到我在 Xcode 中的测试应用程序中。应用程序构建时没有任何错误或警告,但是当我在 iPhone 模拟器中运行它时,我得到的只是这个错误消息:

dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address
  Referenced from: /opt/local/lib/gcc47/i386/libgomp.1.dylib
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ___emutls_get_address
  Referenced from: /opt/local/lib/gcc47/i386/libgomp.1.dylib
  Expected in: /usr/lib/libSystem.B.dylib

我读到在以前版本的 GCC 中存在一个错误___emutls_get_address,但现在应该修复它。你知道可能出了什么问题吗?

4

1 回答 1

2

它正在寻找一个不存在的动态库。由于您不能在实际设备上使用动态库,因此它将在设备上失败,但在构建期间不会。您应该尝试手动将库重建为 .a 文件,并确保使用任何 -l 参数。那是我给你最好的。假设这不是越狱(可能是真的),您只需手动链接它。您总是可以将库代码文件添加到您的项目中。

希望这可以帮助。

于 2013-07-24T22:29:49.443 回答