文献によると、A6 プロセッサは ARMv7 コードを実行します。ライブラリが ARMv7 用にビルドされているため、私のプロジェクトはリンクで失敗していますが、アプリケーションは ARMv7s 用にビルドされています。
典型的なメッセージは (iPad 4 (Retina) または iPhone 5 を接続した場合):
ld: warning: ignoring file /usr/local/ssl/iphoneos/lib//fipscanister.o, file was built for armv7 which is not the architecture being linked (armv7s): /usr/local/ssl/iphoneos/lib//fipscanister.o
ld: warning: ignoring file /usr/local/ssl/iphoneos/lib//libcrypto.a, file was built for archive which is not the architecture being linked (armv7s): /usr/local/ssl/iphoneos/lib//libcrypto.a
Undefined symbols for architecture armv7s:
"_FIPS_incore_fingerprint", referenced from:
_FINGERPRINT_premain in fips_premain.o
"_FIPS_signature", referenced from:
_FINGERPRINT_premain in fips_premain.o
"_FIPS_text_start", referenced from:
_FINGERPRINT_premain in fips_premain.o
ld: symbol(s) not found for architecture armv7s
有効なアーキテクチャ (VALID_ARCHS) から ARMv7 を削除することでこれを解決できることはわかっていますが、A6 プロセッサは A5 オブジェクト コードを実行できるため、その理由はわかりません。または、ARMv7s アーキテクチャ用のライブラリの追加ビルドを実行することもできますが、それにはより多くの作業が必要であり、別のディスク上のディレクトリ構造が必要です。
ARMv7 ライブラリを ARMv7s アプリケーションにリンクする魔法はありますか?