Cg-config --libs:no such file or directory

Fermé
hnouna2007 Messages postés 70 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 juillet 2020 - 28 mai 2009 à 11:59
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 30 mai 2009 à 18:31
Bonjour,
je veux compiler un programme qui utilise une nouvelle bibliothèque implementée en c++ (cogitant) en utilisant le Makefile.
Je sais pas exactement quelle est la structure exacte de ce fichier, j'ai pris un exemple que j'ai trouvé dans la documentation de cette bibliothèque voici le contenu de ce Makefile:
PROGRAM = minimal
SOURCES = minimal.cpp
CXXFLAGS = ‘cg-config --cflags‘
LDFLAGS = ‘cg-config --libs‘
OBJECTS = $(SOURCES:.cpp=.o)
$(PROGRAM): $(OBJECTS)
$(CXX) $(OBJECTS) $(LDFLAGS) -o $(PROGRAM)
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $<
clean:
$(RM) $(OBJECTS) $(PROGRAM)

Et voici ce que j'obtien après avoir taper: make
g++ minimal.cpp 'cg-config --libs' -o minimal
g++: cg-config --libs:no such file or directory
make: ***[minimal] Error 1

ça veut dire quoi cette erreur, et comment puisse je la règler?????

Merci à vous
A voir également:

4 réponses

mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
28 mai 2009 à 15:32
Il y a au moins un problème de quotes ' et de backquotes `.
g++ minimal.cpp `cg-config --libs` -o minimal 

Si tu ne t'en sors pas pose ta question à David ( http://www.info.univ-angers.fr/leria/membre_vie.php?user_id=6 ) je le connais, il est très sympa et c'est l'un des principaux contributeurs de ce projet.

Bonne chance
0
hnouna2007 Messages postés 70 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 juillet 2020
30 mai 2009 à 09:34
Merci pour ta réponse, en fait j'ai posé la question a david, et apparament j'ai fait des erreurs dans la structure du fichier Makefile (je mélange les espaces et les tabulations...etc) parceque je l'ai copié à la main, il m'a conseillé de revoir n'importe quelle documentation sur ça.
Mais en fait la compilation marche très bien avec la méthode usuelle qui est:
c++ -c prog.cpp
c++ -o prog prog.o -lcogitant. alors j'ai pas essayé à nouveau avec ce fichier Makefile parce que je suis vraiment perdue et j'arrive pas à me retrouver la dessus.

J'ai pas trouvé un document qui explique d'une façon détaillée et simplifiée cette méthode de compilation, je sais pas si quelqu'un entre vous connait un lien qui voit intéressant.
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
30 mai 2009 à 14:07
Je pense qu'à la place de c++ tu voulais écrire g++.
Dans ton makefile il manque au moins une tabulation au début de chaque ligne décrivant une cible (une cible c'est une ligne qui contient un :). Et c'est vraiment une tabulation, pas des espaces. Ensuite il y a le problème au niveau des backquotes. Enfin il manque certaines définitions de cibles :
CXX=g++
RM=rm
PROGRAM = minimal
SOURCES = minimal.cpp
CXXFLAGS = `cg-config --cflags`
LDFLAGS = `cg-config --libs`
OBJECTS = $(SOURCES:.cpp=.o)

$(PROGRAM): $(OBJECTS)
    $(CXX) $(OBJECTS) $(LDFLAGS) -o $(PROGRAM)

%.o: %.cpp
    $(CXX) $(CXXFLAGS) -c $<

clean:
    $(RM) $(OBJECTS) $(PROGRAM

Bonne chance
0
hnouna2007 Messages postés 70 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 juillet 2020
30 mai 2009 à 16:13
Non je dis bien c++; mais ça marche aussi avec g++, et si vous voulez la vérité je sais pas c'est quoi la différence entre les deux et quand est ce que on utilise l'une ou l'autre
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
30 mai 2009 à 18:31
Aucune c'est un alias.
(mando@aldur) (~) $ ls -l /usr/bin/c++
lrwxrwxrwx 1 root root 21 jun  4  2007 /usr/bin/c++ -> /etc/alternatives/c++
(mando@aldur) (~) $ ls -l /etc/alternatives/c++
lrwxrwxrwx 1 root root 12 avr 22 23:45 /etc/alternatives/c++ -> /usr/bin/g++

Bonne chance
0