7

gccデフォルトで常にいくつかのフラグを追加できるようにしたいのですが、これを行うためのクリーンな方法はありますか?

gcc基本的に、たとえば (ただし、これに限定されません) -g(デバッグ情報が含まれるように)を呼び出すたびに渡すフラグがいくつかあります。

いくつかの回避策がありますが、それらは醜いです:

  1. alias g++=...、しかし、私はこのアプローチが好きではありません。
  2. 1 のように、g++ をラップするスクリプトを作成します。
  3. ...

すべてがシームレスになるように、スペック ファイルを変更することをお勧めします。

4

2 に答える 2

11

を実行strace gcc | grep specsして specs ファイルを検索している場所を確認し、そこに移動して を実行しますgcc -dumpspecs > specs。これで、specs ファイルを編集する準備が整いました。このリファレンスを使用してください: https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html

于 2012-06-03T12:47:22.903 に答える
1

specs ファイルを変更する際の問題は、いくつかのオプションについて気が変わった場合に、コマンド ラインからキャンセルできないことです。specs ファイルを変更する必要があります。また、コンパイラをアップグレードするときは、新しい仕様ファイルを再変更することを忘れないでください。

また、どのくらいの頻度でコマンド ラインからコンパイラを実行しますか? 直接これを行うのは、コマンド ラインを一時的にハックする必要があり、makefile のコンパイラ オプションを修正する方法を考えるのが面倒なときだけです。 make の出力を確認し、コンパイラを実行します。の問題点の 1 つaliasは、 内では機能しないことmakefileです。したがって、私にとって問題は、すべてのメイクファイルでコンパイラ オプションが使用されるようにすることです。

于 2012-04-18T00:44:23.457 に答える