2012-02-26 8 views
3

Githubの最新のFacebook SDKコードをプロジェクトに追加しました。 ARCを使用しているので、付属のシェルスクリプトを使用して静的ライブラリを構築しました。私は自分のプロジェクトに追加し、静的ライブラリがリンクされていることを確認しましたが、私は、このリンカエラーを受けています:Facebook SDKを使用したリンカーエラープロジェクト

App linker settings

任意のアイデア:ここ

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_FBFrictionlessRequestSettings", referenced from: 
     objc-class-ref in libfacebook_ios_sdk.a(Facebook.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

は、リンカの設定はありますか?

答えて

2

にヘッドリビジョンが壊れたARCは、(静的ライブラリ)を構築持っているように見えるいくつかの最近の変更を持っています。静的ライブラリは大丈夫ですが、私のプロジェクトで使用するとリンカのエラーが発生します。私が問題を解決するためにしたのは、以前のバージョンのFacebook sdkに戻って、これらのリンカーエラーが消えてしまったことです。

https://github.com/facebook/facebook-ios-sdk/commits/master私はバージョンが2月24日にチェックインした使用を参照してください(ない2月25日、申し訳ありませんジェイソン・クラーク!)

https://github.com/facebook/facebook-ios-sdk/tree/9acf74345bb248d698966eac9a3057a4b4be1b0f

+0

あなたはそうです。もし私がコミットの歴史を見ていたら、私はおそらく同じことをやっただろう----深夜。ありがとう! –

+0

私はまだ同じエラーが発生します....あなたはより具体的にできますか? 私が使用している#importコマンドは何ですか? すべての ".h"ファイルまたは1つの ".a"ファイルをインポートしますか? – Noam

+0

ありがとう、これは私のトリックでした! – raidfive

1

あなたのfb-ios-sdkをビルドするときに何か間違っているように見えます...静的なlibをビルドするときにすべてのup2dateとエラーはありませんでしたか?

SDKの最新バージョンをシミュレータまたはiOS5デバイスで実行している&にすることは問題ありません。 https://github.com/facebook/facebook-ios-sdk/zipball/master

  • 解凍ファイルつかむ今cd ~/facebook-ios-sdk/scripts/ && ./build_facebook_ios_sdk_static_lib.sh
  • にそれを構築する&:ここ

    は、最新のソースファイルが(OS X 10.7.3、Xcodeの4.2.1、iOS5をARC)

    • グラブ私がやったことですfacebook-ios-sdkのフォルダ内に~/facebook-ios-sdk/lib/、このようにXcodeプロジェクトフォルダに入れます:http://cl.ly/1X3B203f272z2l0w2t39 &とのリンク Xcode
    • ${SOURCE_ROOT}/facebook-ios-sdkあなたHeader Search Paths
  • +0

    "#import" FBConnect.h "という行は実行できません.... また、facebook-iosからすべての.hファイルをコピーしようとすると私のプロジェクトに-sdkフォルダ、それは私に、このエラーを与える:i386アーキテクチャ用 未定義のシンボル: "_OBJC_CLASS _ $ _ FBFrictionlessRequestSettings" から参照:libfacebook_ios_sdk.aで にObjCクラス-REF(Facebook.o) LD:記号( s)が見つかりませんでした。i386 clang:エラー:終了コード1でリンカコマンドが失敗しました(呼び出しには-vを使用) – Noam

    +0

    "libfacebook_ios_sdk.aとのリンク"とはどういう意味ですか? – Noam

    +0

    アクティブなターゲットを選択し、ビルド段階 " - >"リンクB + " - "他を追加... "を選択し、' libfacebook_ios_sdk.a'を選択してください – dom

    2

    2月25日はFBFrictionlessRequestSettings.mから欠けているコミットxcodeプロジェクトであり、ヘッダーであるにもかかわらず静的リンクライブラリのイベントには含まれません。

    1.-クローン最新のコミットこの記事の時点で最新のレポは、次のとおりです。https://github.com/facebook/facebook-ios-sdk/commit/4e3567c40e3b7f8156a82f18e5a2f5cd18e077eb

    2.-オープンXcodeプロジェクトFacebookの-IOS-sdk.xcodeproj srcディレクトリの下に

    3.- FBConnectの下にFBFrictionlessRequestSettings.mを追加します。プロジェクトナビゲータを使用して

    4.-は、作るsuer FBFrictionlessRequestSettings.mはコンパイルソース

    5.-保存して閉じXcodeプロジェクト

    6.-実行スクリプト/ build_facebook_ios_sdk_static_lib下のビルドフェーズに記載されています。shで最新の静的リンクライブラリをビルドし、インストール手順に従うと、問題なくコンパイルしてリンクすることができます。

    さらに、このレポをクローンして構築してください。すべての準備が整いましたhttps://github.com/alvarezm50/facebook-ios-sdk

    +0

    あなたのレポは私にとって完璧に機能しました。ありがとう!!!!!! – Noam

    0

    私は同じ問題がありました。それはかなり自明であることが判明した。私はコマンドラインを使用することを好む、gitのXCodeのサポートを使用します。しかし、これは、私がgitから引き出すたびに、新しいファイルを追加し、削除されたファイルをすべて削除するようにする必要があることを意味します。この場合、FBFrictionlessRequestSettings。*がトリックを行いました。

    File->Add Files to "My Project"

    1

    私は、この手順を試してみましたが、それを修正することができています。

    プロジェクトを選択ターゲット - >ビルドフェーズ - >ソースをコンパイル Facebookスタティックライブラリのすべての.mファイルもjsonスタティックライブラリに追加します。 アプリケーションを実行すると、リンカエラーが発生することはありません。

    関連する問題