2017-11-27 11 views
1

私はiOSアプリケーションを作っており、WebサービスなしでPostgreSQLデータベースに接続する必要があります(データベースに直接接続してください)。私はここから私の旅を開始しました:ld:フレームワークが見つかりませんlibpq

  1. Goはlibpq.frameworkを見つける:How to connect to postgresql from ios9

    単純に、それはこの手順に従うことを言います。

  2. libpqを接続するためのC APIとして、(libpqはObj-cではないため)Cタイプのファイルを作成する必要があります。その後
  3. それを接続するためのブリッジング・ヘッダーを作成します。(それブリッジングは、独自に生成しません)
  4. 先頭へ
  5. を作成したC型のファイルにこの「PostgreSQLのC言語API」をフォローこのチュートリアルチュートリアル私を救いました(Cは私から非常に遠いです)
  6. 必要に応じて、ビルド設定>>ビットコードを有効にしてください>> YES
  7. デバイスでテストしてください。

そして最後に、私は従うことを試みたが、イムは、このエラーに引っかかっthis project on GitHub魔女につながる「LD:フレームワークのlibpqが見つからない」

これは、私はすでにそれを動作させるためにしようとやっていることです。

  • は "MyProjectと/コンテンツ/フレームワーク/"​​
  • コピー「testPostgreSqlAダウンロードしたプロジェクトの中からGitHubの
  • コピー "libpq.framework" からプロジェクト全体をダウンロード(mycode-Bridging-Header.h "を自動的に作成しました)
  • 一般的な"リンクされたフレームワークとライブラリ "の" libpq.framework "を追加しました。 Xcodeの
  • 上のタブには、ビルド設定]タブの[ライブラリの検索パスを編集する「$(PROJECT_DIR)/Contents/Frameworks/libpq.framework/Versions/A/Headers」
  • ビルド設定]タブでヘッダ検索パスを編集します"$再帰(PROJECT_DIR)"
  • そして最後のために、/ /ライブラリ/フレームワークに "libpq.frameworkを" コピー

この後、ビルドしようとする前に私のアプリはXcodeにエラーを表示しませんが、ビルドしようとするとエラーが出ます: "リンカコマンドは終了コード1で失敗しました(呼び出しを見るために-vを使います)そして、ログにエラー「LDを:libpqのフレームワークが見つかりません」と表示

PS

は、これが私の最初のiOSアプリで、およびMac OSを使用して初めて、イムは、おそらく間違って多くのことをやって、そして、この文脈で助けを求めているImは、 "本当に必要なのは、/ Library/Frameworks /にこの 'ばらばらの' libpq.framework 'をコピーすることですか?

答えて

0

最後に、フレームワークと共有ライブラリについて多くのことを読んだ後、私のアプリケーションがうまくいかなかった理由を理解できました。 According to this link,"[...] You create a framework by building a normal dynamic shared library into a folder with the same name and the .framework extension. For example, to create a framework named Chaos, place a dynamic shared library named Chaos in a folder called Chaos.framework. [...] "。私がダウンロードしたフレームワークを見てみると、ディレクトリ構造はこのように見えた:

libpq.framework 
    |_ Versions/
        |_ A/
            |_ libpq 
            |_ Headers/
                |_ libpq-fe.h 
                |_ pg_config_ext.h 
                |_ postgres_ext.h 

だから私はちょうどバージョンフォルダと同じレベルにlibpqのファイルをコピーしました。私のフレームワークは、次のようになります。

libpq.framework 
    |_ libpq 
    |_ Versions/
        |_ A/
            |_ libpq 
            |_ Headers/
                |_ libpq-fe.h 
                |_ pg_config_ext.h 
                |_ postgres_ext.h 

は今、私はもはやタイトルに記載されたエラーを表示していない、と私は私のテストを継続することができ

関連する問題