1
コマンドgcc -c a.c b.c c.c
は、ソースファイルがコマンドラインで異なる順序で並べられた場合とは異なるバイナリを生成します。セキュリティ上の理由から、ファイルがビルドされるたびにバイナリの順序を変更したいと思います。これを行うgccの組み込みオプションはありますか?または手動でソースファイルを並べ替えるよりも良い方法はありますか?gccでバイナリを別々に注文することは可能ですか?
コマンドgcc -c a.c b.c c.c
は、ソースファイルがコマンドラインで異なる順序で並べられた場合とは異なるバイナリを生成します。セキュリティ上の理由から、ファイルがビルドされるたびにバイナリの順序を変更したいと思います。これを行うgccの組み込みオプションはありますか?または手動でソースファイルを並べ替えるよりも良い方法はありますか?gccでバイナリを別々に注文することは可能ですか?
あなたは確率異なるていることを気にしないなら、あなたが入力ランダム化する小さなシェルスクリプトを書くことができます:もちろん
gcc -c $(ls *.c | sort --random-sort) -lwhatever
を、一般的にls(1)
出力を解析することは危険であるが、これら以来、あなたのソースファイルは、あなたの名前に少し裁量を示し、改行を避ける。
もちろん、同じランダマイズが複数回実行される可能性があるという欠点があります。それが人生だ。
注文が同じであれば、現在よりも悪くはありません。 'sort 'への' --random-sort'オプションは、どこでも利用できるとは限りません(例えば、Mac OS X)。また、 'make'はファイル名の空白やタブを理解しません。 'make'を使っているなら' ls'の問題を引き起こすファイル名はありません。 –
@Jonathan:ありがとう、私は '--random-sort'がGNUismであることを認識していませんでした。 – sarnold