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