システム上のコンパイラを参照する実行可能ファイルを含む変数CC
が渡されました。私はこの実行可能ファイルを取得し、最終的にいくつかのコンパイラ固有のリンク引数で呼び出す必要があります。コンパイルを検出し、コンパイラ固有のフラグを使用して呼び出します。
私の現在のアプローチは非常に壊れやすいようだ:
def guess_compiler(cc):
out = subprocess.check_output((cc, '--version'))
for possible in (b'clang', b'gcc'):
if possible in out:
return possible.decode()
else:
# Fall back to gcc
return 'gcc'
このことから私は、私が気に特定のリンカー引数のマッピングを使用しています:
要するにreturn {
'clang': '-Wl,-undefined,dynamic_lookup',
'gcc': '-Wl,--unresolved-symbols=ignore-all',
}[cc]
、私があります願っています私が成し遂げたことをより良い(脆弱ではない)方法です。
なぜ私がこのようなものを望んでいるのかについては、ほとんどが移植性のためにa project I'm implementingです。
は、私は:)と一緒に行くことを試み何で編集 –