clang: avertissement: -l*: 'linker' entrée inutilisée
Quand je compile le code à l'aide de GNU Make-je obtenir de multiples avertissements, comme:
clang: warning: -lGui: 'linker' input unused
C'est probablement parce que j'ai foiré quelque chose dans mon Makefile (ci-dessous). Quelqu'un peut-il me diriger vers le problème?
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
OriginalL'auteur mareks | 2013-11-04
Vous devez vous connecter pour publier un commentaire.
Ce message signifie que vous êtes de passage de l'éditeur de liens drapeaux (comme
-l
qui indique à l'éditeur de liens à tirer dans une bibliothèque) pour le compilateur.Cela signifie que le résultat de l'exécution de
root-config --cflags --glibs
est la génération de l'éditeur de liens drapeaux, et ceux qui sont dansCXXFLAGS
, qui est passé pour le compilateur. Je ne sais pas ceroot-config
est, mais vous devriez vous pencher sur sa ligne de commande et l'invoquer dans une voie où il ne génère pas de linker les drapeaux. Probablement retrait de la--glibs
option de le faire.ETA: vous vraiment voulez utiliser
:=
pour attribuer ces indicateurs variables si vous allez courir$(shell ...)
. Il fonctionnera de toute façon, mais si vous utilisez=
alors la commande shell sera exécuté à chaque fois faire étend la variable, qui est une fois par compilation. Si vous utilisez:=
, il ne sera exécuté qu'une seule fois lorsque le makefile est analysée.Oh pinaise! Je passais tous les drapeaux de l'éditeur de liens pour le compilateur... je souhaite que clang a été un peu plus descriptif. L'erreur fait ressembler à de la lib a été ignorée, car le code n'a jamais utilisé ses symboles.
OriginalL'auteur MadScientist
J'ai eu ce même message d'erreur et la raison en est que j'ai oublié d'ajouter
-I
en face de mon chemin d'accès inclus pour les cflags dans le makefile. Par exemple:OriginalL'auteur ManyuBishnoi