2009-04-20 6 views
2

この質問の動機は、自分の論文の一部をしようとしているプロジェクトであるiPhoneアプリケーションで動作するLDAP関数を取得しようとしていることです。iPhoneプロジェクトに静的ライブラリを追加する

私がアプリケーションを開発していたとき、私はMac OS Xの一部であるldap.frameworkフレームワークを使用しました。これはシミュレータではうまくいきますが、デバイス上でアプリケーションを取得しようとすると、このフレームワークを使用することはできません。

いくつかの調査の後、私はアームアーキテクチャを使用してopenldapを構築し、自分のデバイス向けのアプリケーションに静的ライブラリを追加できることを発見しました。

私は最終的にhereを述べたように、変数を設定して、設定をコンパイルし、OpenLDAPのを構築するために管理し、次のコマンドを使用して...

Ade$ ./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 \ 
LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin --with-yielding_select=yes 
Ade$ make depend 
Ade$ make 

私は私が探しているファイルは、の拡張子を持っているだろうと言われました「.A」ので、私は、だから私はこれらは私が必要とするファイルであると仮定し... LDAPに言及している「.A」ファイルのため

Ade$ sudo find/-name *ldap*.a 
Password: 
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap/.libs/libldap.a 
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap_r/.libs/libldap_r.a 

を検索!

私の質問は次に何ですか?私は、Xcodeプロジェクトにライブラリを追加する必要があることを知っています。おそらく、 '.h'ファイルのロードも追加しますか?

誰かが私にドキュメントへのポインタを与えたり、次の段階で光を放つことができれば、本当に感謝しています。

多くのおかげで、 アデ

PS。私はまた、このプロセスについて、私のブログwww.greenpasta.comで話しました。

答えて

1

Xcodeプロジェクトに.aファイルをドラッグし、[プロジェクトにファイルをコピー]を選択します。私はOpenLDAPに慣れていないが、_rバージョンは単なるスレッドセーフなバージョンだと思う。私はそれを使用し、他のものをコピーしないことをお勧めします。おそらく両方のファイルをXcodeにコピーしないと、リンクエラーが発生します。

OpenLDAPのクライアントAPIを定義する.hファイルについても同じことをやり直してください。これらはどれですか、私はあなたが簡単に見つけ出すことができると確信しています。

.aファイルと.hファイルをリソースの下のXcodeグループにまとめることをお勧めします。

ソースにヘッダーファイルを含めてください。

+0

こんにちは、 私はこの方法を試みたが、いずれかの近いを取得できませんでした... アップルディスカッションボード上で起こって別の議論があります... –

0

また、リンカーコマンド(ビルド設定ウィンドウ内)に-lldapを追加する必要があります。

2

iPhoneOS 2.2のLDAPクライアントを構築するのと同じことをしました。 .aを "ライブラリとのリンク"ビルドステージにドラッグするだけです。 ldapのものにリエントラントが特に必要な場合を除いて、ライブラリの正規版(非_r)を使用することをお勧めします(これはお勧めしません)。 .hをプロジェクトに追加することもできます。これは一般的にプロジェクトにアクセスする最も簡単な方法です。

関連する問題