17

Xcode 4.5GMiPhone 5 の余分な画面サイズに対処するために、iPhone プロジェクトのいくつかの画面をアップグレードして整理しました。プロジェクトはターゲットiOS 5.1になっていて、携帯電話用にビルドするようになりましたが、次のリンカ エラーが発生します。

ファイルはユニバーサル (2 スライス) ですが、(n) armv7s スライスは含まれていません: /Users/JonathanW/Documents/MyXcode/myApp/myApp/CorePlot/libCorePlot-CocoaTouch.a アーキテクチャー armv7s 用

プロジェクトで静的ライブラリを使用してCore Plot 1.0いますが、これまで問題はありませんでした。周りを見回すと、ビルド アーキテクチャの設定に関する同様のエラーが見られますが、ここからどこに行けばよいかわかりません。プロジェクトはシミュレーターで正常に動作します (iOS 5.1との両方iOS 6)。何か案は?

4

10 に答える 10

15

ライブラリのARMV7Sビルドがあるように、Xcode 4.5GMでlibCorePlotライブラリを再構築する必要があります。古いXcodeでビルドしたバージョンを使用しようとしているようです。

于 2012-09-13T16:53:26.960 に答える
7

プロジェクトでCorePlot1.0静的ライブラリも使用しています。Build Active Architectures OnlyYesに設定することで、この問題に対処することができました。 Build Active Architectures Onlyは、Xcodeでのターゲットのビルド設定のアーキテクチャセクションにあります。

不完全なように見えるCorePlot1.0 zipファイルをダウンロードしたため、ライブラリを再構築できません。

于 2012-10-02T14:53:34.443 に答える
4

シミュレーターは常に i386 アーキテクチャーを使用するため、シミュレーターで動作します。それは新しい SDK でも変わっていません。変わったのは、新しいアーキテクチャ (armv7s) を採用した iPhone 5 の存在です。あなたのアプリのプロジェクトは自動的に armv7s を有効なアーキテクチャとして追加しましたが、ライブラリはそれを知らずにコンパイルされた可能性があります。したがって、arm7s 対応アプリは、armv7s なしでビルドされたライブラリに対してリンクを試みて失敗します。

これを修正するには、ライブラリを生成するプロジェクトにアクセスする必要があります。ターゲットの「有効なアーキテクチャ」設定を変更して armv7s を含め、再構築します。

于 2012-09-13T16:57:59.900 に答える
2

私はこれに何日も苦労してきましたが、新しい静的ライブラリを作成することで最終的に機能させることに成功しました。

ここの指示に従って Mercurial ソースコード管理システムを使用しました: Mecurialを使用して静的ライブラリを作成し、ここにある wiki の「Core-Plot Static Library Install」を使用します: How to do a Static Library Install of Core-Plot

これは非常に単純で自己説明であるため、私のような経験の浅い人のためにこれを投稿しています。

于 2012-09-30T16:20:58.483 に答える
0

CorePlotプロジェクトのコンパイラをAppleLLVMコンパイラ4.1からLLVMGCC4.2に切り替えます

于 2012-09-21T12:15:05.383 に答える
0

クリーンアップして再構築しましたか?また、アーキテクチャに armv6 と armv7 があることを確認してください。ターゲットを再コンパイルし、ライブラリをターゲットに再度追加する必要がある場合があります

于 2012-09-13T16:54:20.543 に答える
0

単純にコアプロットライブラリをコンパイルし、このリンクhttp://code.google.com/p/core-plot/wiki/UsingCorePlotInApplications
から依存プロジェクトのインストールをたどり、 すべてが魅力的になりました(私のプロジェクトは現在、両方のarmv7をサポートしていますおよび問題なくarmv7s)、さらに、すべてのアーキテクチャを確実にサポートするために、 Build Active Architecture Only を NO に設定します

于 2012-11-04T11:37:01.760 に答える
0

有効なアーキテクチャのリストから armv7s を削除するだけです。

次のことを行うだけです。-Project Navigator からプロジェクトを選択します -ターゲットのリストからターゲットを選択します -ビルド設定タブを選択します -[有効なアーキテクチャ] 設定を見つけます。armv7 armv7s と表示されるはずです。armv7s を削除すると、有効なアーキテクチャに armv7 のみが存在します。これで、プロジェクトが正しくコンパイルされます。

于 2012-12-13T10:25:51.153 に答える