の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は正しいスクリプトを指定しているので心配する必要はありませんが、他の場合は読みます。リンカスクリプト自体が何をしているのかを把握します。