JNIを介してネイティブコードをロードするJavaアプレットがあります。Snow Leopardにアップグレードするまではすべて問題なく動作し、その後Safariは馬鹿げていると判断しました。Safariは、64ビットモードの場合にのみ64ビットバイナリをロードすることがわかりました。(32ビットモードにすることはできますが、それはオプションではありません。)ビルドシステム(g ++)を変更して、単一の32ビットバイナリではなくユニバーサルバイナリのビルドをサポートするようにしました。ユニバーサルバイナリを正常に作成しましたが、アプレットにロードしようとすると、適切な画像が見つからず、マップできないという不満足なリンク例外が発生します。誰かがこれに以前に対処したことがありますか?
追加情報について...ターミナルで「filenative.dylib」と入力すると、元の32バイナリは次のように出力されました。Mach
-O動的リンク共有ライブラリi386
そして、ユニバーサルバイナリに対して同じことをしたとき、次のようになりました
。native.dylib:2つのアーキテクチャを持つMach-Oユニバーサルバイナリ
native.dylib(アーキテクチャi386の場合):Mach-Oオブジェクトi386
native.dylib(アーキテクチャの場合x86_64
): Mach-O64ビットオブジェクトx86_64