iphone - 为使用 OpenMP 的 iOS 编译静态库

标签 iphone ios c openmp static-linking

我正在编写一个使用 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,但现在应该修复了。您知道哪里出了问题吗?

最佳答案

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

希望这对您有所帮助。

关于iphone - 为使用 OpenMP 的 iOS 编译静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220215/

相关文章:

ios - 使用 Swift 在 iPhone 上以编程方式关闭设置应用程序

iphone - 游戏中心即使没有 iTunes 连接

ios - 选择器 'indexPathForRow:inSection:' 没有已知的类方法

c - Keil C 编译器中的 strcpy 和 strcat

c - 为什么一个正值的 int 在 c 中相加时会变成负值?

iPhone - 在整个应用程序中禁用多点触摸

iphone - iphone 字体粗体问题

iphone - 先学习 Leopard 的 Cocoa 然后再学习 iPhone 的 Cocoa Touch 有意义吗?

iphone - 自定义字体在iOS 5中不起作用

c - 在 C 中的 O(N) 中搜索 Trie