さまざまな32ビットエミュレーションモード間のGNUリンカの違いは何ですか?

さまざまな32ビットエミュレーションモード間のGNUリンカの違いは何ですか?

の386ビットオプションと32ビットオプションの違いは何ですかld -V

  • elf32_x86_64
  • elf_i386
  • i386linux
  • i386pep
  • i386pe

そして、これらの「エミュレーションモード」のドキュメントはどこで見つけることができますか?

ベストアンサー1

「シミュレーション」は別のものを選択しますリンカースクリプト;/usr/lib/ldscriptsシステムでスクリプト自体を見つけることができます。あなたがリストしたシミュレーションは次のとおりです。

  • elf32_x86_64:x64-32用ELF、別名x32- 32ビットx86-64バイナリ
  • elf_i386:i386用ELF - 32ビットi386バイナリ
  • i386linux:a.i386のうち
  • i386pep: x86-64 用 PE+ — Windows 形式の 64 ビット バイナリ
  • i386pe:PE for i386 — Windows 形式の 32 ビット バイナリ

リンカスクリプトは、出力形式とアーキテクチャ、検索ディレクトリ(ldライブラリが見つかる場所)、バイナリの一部などを定義します。

リンカースクリプトの形式はよく文書化されていますが(上記を参照)、利用可能なスクリプトはそうではありません。ほとんどの場合、GCCは正しいスクリプトを指定しているので心配する必要はありませんが、他の場合は読みます。リンカスクリプト自体が何をしているのかを把握します。

おすすめ記事