1. ホーム
  2. c

[解決済み] なぜ、すべてのコードは位置に依存せずにコンパイルされないのですか?

2023-02-24 14:02:25

疑問点

gcc で共有ライブラリをコンパイルするとき、-fPIC オプションはコードを位置に依存しないようにコンパイルします。 すべてのコードを位置独立でコンパイルしない理由 (パフォーマンスやその他の理由) はありますか?

どのように解決するのですか?

インダイレクトを追加するのです。位置に依存しないコードでは、関数のアドレスをロードしてから、そこにジャンプする必要があります。通常、関数のアドレスはすでに命令ストリームに存在しています。