Makefile pas utiliser include/bibliothèque des chemins?
Bien, après 3 heures de recherche, je suis sur le point de devenir fou, donc je me dis qu'il est temps de passer à de nouveaux yeux.
CXXFLAGS = -g -Wall
OBJS = main.o
PROG = test
INCLUDES = -I /usr/include/mysql -I /usr/local/include
LIBS = -L /usr/lib/mysql -l libmysqlclient.so.15.0.0 -L /usr/local/lib -l libmysqlpp.so.3.1.0
all: $(PROG)
${PROG}: $(OBJS)
$(CXX) $(INCLUDES) -o $(PROG) $(OBJS) $(LIBS)
clean:; $(RM) -f $(PROG) core *.o
Il ya quelque chose de mal avec l'inclure des chemins d'accès, parce que j'ai des erreurs que mysql_version.h n'existe pas lorsque ce n'existent pas dans /usr/include/mysql.
La vérification de la première partie de la sortie, il dit
g++ -g -Wall -c -o main.o main.cpp
qui me fait penser que j'ai formaté quelque chose dans le Makefile mal (en raison de l'espace supplémentaire et le manque de chemins include/library). Cependant, je l'ai regardé des dizaines de manuels et d'articles sur les Makefiles et le g++ options et... pas de progrès.
Je suppose que ce doit être une solution simple. S'il vous plaît, s'il vous plaît aider (avez-vous le sentiment de mon désespoir?).
Sur une autre note, pensez-vous que la spécification de la bibliothèque est spécifiquement nécessaire? J'ai eu ce genre de choses cours d'exécution dans XCode, mais je suis en train de migrer le code de mon serveur web... le Makefile a arrêté tous les progrès, et je me dis, c'est quelque chose que je dois apprendre.
OriginalL'auteur Liandri | 2012-02-18
Vous devez vous connecter pour publier un commentaire.
Dans votre makefile, vous avez ajouté votre compte les directives à l'étape de lien, pas la compilation de scène.
Les lignes
Dire de plus pour le programme dans ${PROG} de l'objet des fichiers dans ${OBJS} en appelant le compilateur dans ${CXX} passage de l'inclure des dossiers (avec vos autres arguments). Au lieu de cela, pour votre section variable, ce faire:
De cette façon, votre CXXFLAGS (qui sont utilisés pour la compilation de la scène) devrait maintenant de ramassage de vos directives.
Je pense que
-I
est généralement utilisé pour le pré-compilateur étape, de sorte qu'il serait meilleur ajustementCPPFLAGS
, maisCXXFLAGS
est très bien. +1OriginalL'auteur MJD