簡単な質問です。サンプルのMakefileに "DLDFLAGS"と "LDFLAGS"の両方が見つかりました。使用されるコンパイラはgccです。両方ともリンカーに使用されているようです。私はそれらの違いは何ですか?DLDFLAGSとLDFLAGSの違いは何ですか
4
A
答えて
7
LDFLAGS
は、通常、リンカーに渡されるオプションを含むように設定されています(したがって、必要なライブラリが含まれている可能性があります)。 CFLAGS
と一緒に、これらはしばしば開発者環境変数の一部として設定され、make
はそれらについて知っているので、積極的に設定されているかどうかを見てコンパイラに渡します。例えば
私は-O2 -Wall
に私の環境でCFLAGS
を設定した場合、私はノーメイクファイルでmake hello
を入力した場合、その後、自動的にgcc -O2 -Wall hello.c -o hello.o
としてコンパイラを呼び出します作ります。コマンドラインにフラグLDFLAGS
を追加して同様の方法でリンカを起動します。
Makefileは、LDFLAGS
とCFLAGS
の両方を明示的に上書きできます。
DLDFLAGS
はよく知られている/定義された変数ではないので、その特定のMakefileに固有の可能性があります。どのように使用されているかを知るにはMakefileを読まなければなりません。たとえば、LDFLAGS
が設定されている場合に使用するリンカーフラグを定義することができます。Makefileを読んで確かめてください。
0
DLDFLAGS
"LDFLAGS"という名前のマクロを定義するプリコンパイラフラグではありませんか? gccのマニュアルから
:
-D名前
Predefine name as a macro, with definition 1
それは私が推測する、ダイナミックリンカフラグのためである可能性があります。私は正確な情報をオンラインで見つけることができませんでした。 'DLDFLAGS'の価値は何ですか? –