GNUを使用してコードをコンパイルすると、次のような複数の警告が表示されます:
clang: warning: -lGui: 'linker' input unused
これはおそらく、Makefile(以下)で何かをめちゃくちゃにしたためです。誰かが私を問題に向けることができますか?
CXX=g++
CC=g++
CXXFLAGS=-g -Wall -W -Wshadow -Wcast-qual -Wwrite-strings $(Shell root-config --cflags --glibs)
CPPFLAGS+=-MMD -MP
LDFLAGS=-g $(Shell root-config --ldflags)
LDLIBS=$(Shell root-config --libs)
xSec_x: xSec_x.o xSec.o Analysis.o
-include xSec_x.d xSec.d Analysis.d
xSec.o: xSec.cpp xSec.h Analysis.h Analysis.cpp
xSec_x.o: xSec_x.cpp xSec.h Analysis.h
clean:
rm -f @rm -f $(PROGRAMS) *.o *.d
このメッセージは、リンカーフラグ(ライブラリーにプルするようリンカーに指示する_-l
_など)をコンパイラーに渡していることを意味します。
これは、_root-config --cflags --glibs
_の実行結果がリンカーフラグを生成し、それらがCXXFLAGS
に送られ、コンパイラーに渡されることを意味します。 _root-config
_が何であるかはわかりませんが、コマンドラインを調べて、リンカーフラグを生成しない方法で呼び出す必要があります。おそらく_--glibs
_オプションを削除することでそれが可能になります。
ETA:あなたreally _:=
_を使用して、$(Shell ...)
を実行する場合は、これらのフラグ変数を割り当てます。どちらの方法でも機能しますが、_=
_を使用すると、シェルコマンドが実行されますmakeが実行するたびに変数が展開されます。これはコンパイルごとに1回です。 _:=
_を使用すると、makefileが解析されるときに1回だけ実行されます。
これと同じエラーが発生しました。その理由は、メイクファイルのcflagsのインクルードパスの前に-I
を追加し忘れたためです。例えば:
CFLAGS += $(path)/dir/subdir/include -> Got the above mentioned error.
CFLAGS += -I$(path)/dir/subdir/include -> Fixed the issue.