2012-08-31 112 views
6

我正在编写一个使用OpenMP的简单跨平台库,但我无法弄清楚如何在iPhone应用程序中对其进行测试。
我跑OS X,与GCC 4.7,我编译它作为一个静态库,我也设法将其与libgomp.a连接在一起,并把它添加到在Xcode我的测试应用程序。应用程序建立没有任何错误或警告,但是当我在iPhone模拟器运行它我得到的是这样的错误消息:编译使用OpenMP的iOS静态库

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以前版本中的错误,但它应该是现在修好。你有什么想法可能是错的?

+0

你有链接你的头文件吗?也许想像真诚的明信片和其他人这样的“假”框架会有所帮助...... – Ondrej

回答

2

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

希望这会有所帮助。