XCode(iPhoneSDK)でLinkが上手くいかない場合の確認事項


SQLiteライブラリのリンクの設定でちょっとはまったので備忘録に。


Linkingのエラーが出たら、ビルド設定の【Library Search Path】を確認し、別のパスが優先で指定されていたらその値を削除する

( このとき検索窓を使って設定を探す場合は、Showのところを【All Settings】にしておかないと、
独自定義した値しか表示されず混乱するので注意 )


要はXCodeが勝手にPath設定を追記して、他の環境のライブラリを優先指定しているのが原因。


libxmlなど、別のフレームワークや環境等にも含まれるdylibを指定する場合、同様の問題が起こる可能性がある。


自分の場合は、XAMPPのほうのlibsqliteが優先で指定されていて、
iPhone実機で動作させる際にリンクエラーが出た。


ちなみに、シミュレータと実機ではそれぞれ別のdylibを呼ばないといけないが、
通常は自動でXCodeが切り替えてくれるところを、自前で切り替えたい場合は、
下記のパスを【Library Search Path】に指定すれば良い。

■シミュレータ:

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.2.sdk/usr/lib

■実機:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/usr/lib