ld: library not found for -lz.1.2.3 と出たら

2011年10月15日土曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

Xcode 4.1 で iOS 4.3 向けに開発していたアプリを Xcode 4.2 で iOS 5 の実機用にビルドしたら下記のエラーが出た。
ライブラリがみつからないとのこと。該当ファイルが赤い表示(ファイル不在)になっている。

iOS 5 になってライブラリのバージョンが上がったのが原因のようだ。この場合はリンクするライブラリを変更してやればいい。ターゲットを選び "Builde Phases" の "Link Binary With Libraries" で適切なバージョンのライブラリを指定してやる。
iOS 5 になって libz の 1.2系は 1.2.3 から1.2.5 にバージョンアップされたようだ。iOS 5 向けだけにアプリをリリースするのであれば 1.2.5 を選べばいいが、iOS 4.3 もサポートするのであればそれはまずい。この場合、シンボリックリンクである libz.1.dylib か libz.dylib を選ぶといい。

この後、Deployment Target を iOS 4.3 としてビルドしたコードは、iOS 4.3 と iOS 5.0 の実機で動作した。
他のライブラリでも同様の問題が出たら同じ様に直せば良いだろう。

Responses

Leave a Response

人気の投稿(過去 30日間)