clang: Warnung: -l*: 'linker' input unbenutzt
Wenn ich kompilieren von code mit GNU Make bekomme ich mehrere Warnungen wie:
clang: warning: -lGui: 'linker' input unused
Dies ist wahrscheinlich, da habe ich etwas Durcheinander in meinem Makefile (siehe unten). Kann jemand Punkt mich gegen das problem?
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Nachricht bedeutet, dass Sie passieren linker flags (wie
-l
was weist den linker an, ziehen Sie in einer Bibliothek), die für den compiler.Dies bedeutet, dass das Ergebnis der Ausführung
root-config --cflags --glibs
generiert linker flags, und diese gehen inCXXFLAGS
, die an den compiler übergeben. Ich weiß nicht, wasroot-config
ist, aber Sie sollten untersuchen Sie die Kommandozeile und rufen Sie es in einer Weise, wo es nicht erzeugen linker flags. Wahrscheinlich entfernen die--glibs
option wird es tun.ETA: Sie wirklich wollen mit
:=
eine Zuordnung dieser flags-Variablen, wenn Sie gehen zu laufen$(shell ...)
es. Es wird so oder so funktionieren, aber wenn Sie=
dann der shell-Befehl ausgeführt werden jedes mal machen, erweitert die variable, die einmal pro Kompilierung. Wenn Sie:=
wird es nur einmal ausgeführt werden, wenn das makefile eingelesen wird.Bekam ich die gleiche Fehlermeldung und der Grund war, dass ich vergaß hinzuzufügen
-I
vor meinem eingeschlossene Pfade für die cflags im makefile. Zum Beispiel: