1

C++ モジュールを含む静的ライブラリにリンクされた Monotouch プロジェクトがあります。
Monotouch バージョン: 3.0.3.5
XCode バージョン: 4.4.1
C/C++ コンパイラ: Apple LLVM 4.0

iOS シミュレーターと iOS デバイスのデバッグ モードでプロジェクトをビルドすると、すべて問題なく、アプリケーションがリンクされて実行されます。ただし、iOS デバイスのリリース構成をビルドすると、次のエラーが表示されます。

 Undefined symbols for architecture armv7: "___divmodsi4"


静的ライブラリ コードの次の行は、どういうわけか問題を引き起こします。

 int number_of_buckets = num_samples / window_samples_step;

この行を次のように変更すると、問題はなくなります。

 int number_of_buckets = (int)((float)num_samples / (float)window_samples_step);

上記の変更なしで問題を解決する方法はありますか?

ありがとう、ユリー。

4

2 に答える 2

1

アプリの展開ターゲット (プロジェクトのオプションのビルド / iPhone アプリケーション ページ) を少なくとも 5.0 に設定する必要があります。

于 2012-10-01T21:37:52.663 に答える
1

これはビルドの終わり近くに発生し、通常は元のパラメーターに依存します。リリースビルドとデバッグビルドのオプションを比較して、次のことを確認してください。

  • 両方の構成で同じ追加の mtouch 引数を使用しています。

  • 両方の構成で同じコンパイラー、Mono AOT 対 LLVM コンパイラーを使用しています。

  • 両方の構成で、 ARMv6 と ARMv7の同じアーキテクチャを使用しています。

それ以外の場合は、デバッグビルドとリリースビルドの両方について、完全なビルド ログ ( MonoDevelop のError Padのビルド出力から)を添付します (たとえば、バグ レポートやペーストビンよりも望ましい) 。

より役立つようにするには、再構築する前に追加のmtouch 引数に「-v -v -v」を追加します。これにより、各ステップの冗長性 (詳細) が向上します。

于 2012-09-04T12:08:24.387 に答える