7

OpenMP を使用する単純なクロスプラットフォーム ライブラリを作成していますが、iPhone アプリでテストする方法がわかりません。
私はGCC 4.7でOS Xを実行しています。それを静的ライブラリとしてコンパイルしました。また、それをリンクしてXcode のテスト アプリに追加することもできました。アプリはエラーや警告なしでビルドされますが、iPhone シミュレーターで実行すると、次のエラー メッセージが表示されます。libgomp.a

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 に答える