5

前もって感謝します。私はstatic librarylibpics.aと言います。そのライブラリのコードなど、中身を見たいです。私の静的ライブラリには 1 つと 1.h fileつがあり、 の.a file内容を見ることができます。.h fileメソッドは 1 つしかありませんが、 の内容を見ることができません.a file.a fileいくつかの検索の後、メソッドのコーディング部分または実装が含まれていることがわかりました.h file's。私はiOS開発が初めてで、そのコード.a fileを抽出して使用したいと考えています。

静的ライブラリを開く方法について検索してみましたが、ほとんどの場合、静的ライブラリの作成方法や使用方法などに関連する検索がありました。しかし、静的ライブラリ ファイルを開きたいだけで、その実装のコードを見たいだけです。ファイル。

ツールについて何かを読みましnmarが、そのコードをどこに適用すればよいかわかりません。

このようなもの

nm -C libschnoeck.a | less

また

ar -t libsamplerate.a

コマンド ライン ツールをインストールした後 、Владимир Водолазкий の提案に従って、ターミナルに
ar -x phpFramework.aコードを書きました。
私は下線を得た..

ar: phpFramework.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
ar: phpFramework.a: Inappropriate file type or format
4

2 に答える 2

2

ライブラリの作成に使用されるコードは、.a ファイルにリンクされるオブジェクト ファイルにコンパイルされます。.a ファイルにはコードが含まれておらず、.a ファイルから読み取り可能なコードを取得できません。

ただし、ライブラリを使用するには、コードは必要ありません。Xcodeドキュメントに従って Xcode プロジェクトにライブラリを含め、ヘッダーをコードに #import して、コンパイラがライブラリの内容を認識できるようにします。

プロジェクトのリンク段階で、リンカはコードから生成されたオブジェクト コードを調べ、未解決のシンボルを見つけます。これらはライブラリで検索され、ライブラリから必要なオブジェクトのみが取り込まれます。(動的ライブラリに対する静的の利点の 1 つ)

nm は、ライブラリで定義されていて、コードで呼び出すことができるシンボルを一覧表示します。

于 2013-11-07T11:16:53.383 に答える