6

簡単な質問です。サンプル Makefile に「DLDFLAGS」と「LDFLAGS」の両方が見つかりました。使用するコンパイラは gcc です。どちらもリンカーに使用されているようです。それらの違いは何だろうと思います。

4

2 に答える 2

9

LDFLAGS通常、リンカーに渡されるオプションを含むように設定されます (必要なライブラリが含まれる場合があります)。とともにCFLAGS、これらは多くの場合、開発者の環境変数の一部として設定され、makeそれらについて認識されるため、設定されているかどうかを積極的に確認し、コンパイラに渡します。

たとえばCFLAGS、自分の環境で を に設定した-O2 -Wall場合、Makefile を指定せずに入力make helloすると、make は自動的にコンパイラを として呼び出しgcc -O2 -Wall hello.c -o hello.oます。LDFLAGS次に、コマンド ラインにフラグを追加して、同様の方法でリンカーを呼び出します。

LDFLAGSMakefile は、 と の両方を明示的にオーバーライドできますCFLAGS

DLDFLAGS一方、よく知られている/定義された変数ではないため、その特定の Makefile に固有である可能性があります。Makefile を読んで、それがどのように使用されているかを知る必要があります。たとえば、LDFLAGSが設定されている場合に使用するリンカ フラグを定義する場合があります - Makefile を読んで確認してください。

于 2012-01-19T19:12:49.570 に答える