2012-01-19 8 views
4

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

+0

それは私が推測する、ダイナミックリンカフラグのためである可能性があります。私は正確な情報をオンラインで見つけることができませんでした。 'DLDFLAGS'の価値は何ですか? –

答えて

7

LDFLAGSは、通常、リンカーに渡されるオプションを含むように設定されています(したがって、必要なライブラリが含まれている可能性があります)。 CFLAGSと一緒に、これらはしばしば開発者環境変数の一部として設定され、makeはそれらについて知っているので、積極的に設定されているかどうかを見てコンパイラに渡します。例えば

私は-O2 -Wallに私の環境でCFLAGSを設定した場合、私はノーメイクファイルでmake helloを入力した場合、その後、自動的にgcc -O2 -Wall hello.c -o hello.oとしてコンパイラを呼び出します作ります。コマンドラインにフラグLDFLAGSを追加して同様の方法でリンカを起動します。

Makefileは、LDFLAGSCFLAGSの両方を明示的に上書きできます。

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

0

DLDFLAGS "LDFLAGS"という名前のマクロを定義するプリコンパイラフラグではありませんか? gccのマニュアルから

-D名前

Predefine name as a macro, with definition 1