1. ホーム
  2. gcc

[解決済み] gcc -s "と "strip "コマンドの違いは何ですか?

2023-04-23 03:33:43

質問

この2つはどう違うのでしょうか?

  • gcc -s : 実行ファイルからすべてのシンボルテーブルとリロケーション情報を削除します。

  • strip : オブジェクトファイルからシンボルを破棄します。

同じ意味を持つのでしょうか?

あなたはどちらを使いますか。

  • 実行ファイルのサイズを小さくする?
  • 実行速度を上げる?

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

gcc はコンパイラ/リンカであるため、その -s オプションは リンク中 . また、これは設定可能なものではありません。

strip は、すでにコンパイルされたオブジェクトファイルに対して実行できるものです。また、様々なコマンドラインオプションがあり、どの情報を削除するかを設定することができます。例えば -g が削除するデバッグ情報のみを削除します。 gcc -g が追加するデバッグ情報のみを取り出します。

なお、この strip は、bash シェルから実行されているかもしれませんが、bash コマンドではありません。これは bash とは全く別のコマンドで、GNU binary utilities suite の一部です。