私はgccコンパイラとubuntu 12.04 OSを使用しています。私はオブジェクトファイルとprintf関数の定義が含まれているディレクトリの場所を知ることができます。繰り返しますが、プロトタイプを含むヘッダーファイルを探しているのではなく、実際の定義を含むオブジェクトファイルを探しています。printf関数の定義を含むオブジェクトファイルはどこにありますか?
答えて
オブジェクトファイルまたはソースファイルをお探しですか?
.oオブジェクトファイルは、ライブラリlibc.so
に格納されています。ほとんどのLinuxディストリビューションでは、このファイルは/lib/libc.so
にあります。 Ubuntu 11と12では、multiarch supportの一部として、/ libの内容が/lib/i386-linux-gnu
と/lib/x86_64-linux-gnu
に移動されました。
ar x libc.a stdio.o
これはしかし、非常に便利なように見えるしません:
あなたはx
(抜粋)オプションを使用してライブラリを作成するために使用されたar
(アーカイブ)コマンドを使用して、個々のオブジェクトファイルを取得することができますが
このソースはbrowsed on Launchpadです。それは非常に複雑で、2000行以上のコードが伸びています。
私はこれに関して3つの具体的な質問があります。(1)arコマンドを使用して、libCに存在するすべてのオブジェクトファイルをリストします。 2.これらのオブジェクトファイルのうち、printfの定義()?あなたがそれを見つけるのに使ったコマンドは何ですか? 3.プログラムで実際に必要な/使用されている定義のみを含めることで、最終実行可能ファイルのサイズを縮小できますか?もしそうなら、いかに。 – Ananda
一口。この宿題ですか? (1)man ar、(2) 'objdump + some options | grep printf'(3)GCCのドキュメントを参照してみてください。 –
私は私の最初の二つの質問に正確な答えた - 私たちは、次のコマンドを使用libcの中に存在するすべてのオブジェクトファイル一覧表示するには
を:
x86_64版システム:$ AR -tは/ usr /をlibに/ x86_64の-のlinux-gnuの/
libc.aはi386のシステム:$ AR -t /usr/lib/i386-linux-gnu/libc.a
ファイルオブジェクトかを検索するには、printfの楽しさを含み/ usr/lib/x86_64-linux-gnu/usr/lib/i386-linux-gnuまたはディレクトリの下でこのコマンドを実行してください:
$ nm -o libc.a | grep -w printf
まだ正しい答えを見つけるために取り組んでいます。
ええ、 'nm'は、ライブラリを扱っているときに' objdump'に代わる良い方法です。 –
- 1. JavaScript - Disqusは未定義のプロパティを含む "disqus_config"関数をどのように処理しますか?ここ
- 2. コンテナのログを含むログファイルはどこにありますか?
- 3. Sierraのkprintf(kernel printf)ログはどこにありますか?
- 4. PDFMiner APIの定義はどこにありますか?
- 5. Xcodeの用語と定義はどこにありますか?
- 6. cpanfileフォーマットの定義はどこにありますか?
- 7. Theme_Material_Lightの定義はどこにありますか?
- 8. VSCodeのフロータイプ定義はどこにありますか?
- 9. AndroidManifest.xmlの定義済みロゴはどこにありますか?
- 10. Node.js関数定義を含むオブジェクトをワーカースレッドに送信
- 11. ユーザー定義関数に列を含める必要があります。
- 12. 関数定義を含むファイルをインクルードするJavascript Typescript
- 13. R:forループを含むRの関数を定義し、条件が
- 14. 画像とテキストの詳細を含むスーパードロップダウンメニューはどこにありますか?
- 15. ffi.include(...)を含む複数のffi定義
- 16. glibcソースコードプロジェクトのmemcmp.cにあるマクロ__insn_dword_alignの定義はどこにありますか?
- 17. php関数はどこで定義されていますか?
- 18. このPython関数はどのパッケージにありますか?
- 19. Python:他の関数の引数を含む関数の引数を定義します。
- 20. MS SQL Server 2008に格納されているユーザー定義関数はどこにありますか?
- 21. MEAN.JSのreq.isAuthenticated()関数はどこにありますか?
- 22. memoized python関数のキャッシュはどこにありますか?
- 23. OpenGLシェーダ関数texture2DRect()のドキュメントはどこにありますか?
- 24. updateState reactjs関数のパラメータはどこにありますか?
- 25. scala.math.BigDecimalのceil関数はどこにありますか?
- 26. AWSラムダ関数add_permissionのStatmentIdはどこにありますか?
- 27. Laravel 5.4のscriptsIn関数はどこにありますか?
- 28. タグ関数にダッシュを含む属性を指定する方法はありますか?
- 29. printfで変数を含む文字ブロックを埋めます
- 30. "(lambda ** x:x)"の定義済み関数がありますか?
'libc'のその部分です。あなたは何を探していますか?ソースやライブラリ上の定義をマシン上に探しているのと同じですか? –
私はprintfのコード定義を含むlibcのオブジェクトファイルを探しています。 – Ananda