Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1175 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Makefile : 10 ans plus tard ... j'ai oublié la syntaxe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Makefile : 10 ans plus tard ... j'ai oublié la syntaxe

n°1427860
Giz
Posté le 20-08-2006 à 02:44:16  profilanswer
 

Après avoir gouté au bonheur de Ant et les fichiers build.xml, je fais un retour dans le passé avec les bons makefile moisis. Du coup j'ai une erreur de compile du makefile :
 
fichier makefile :
 


toto : toto.o  
    g++ -o toto toto.o -L "C:\\Program\ Files\\MinGW\\lib\\gcc\\mingw32\\3.4.2\\" -lstdc++
toto.o : toto.cpp  
    g++ -ggdb -c toto.cpp
all :  
    mingw32-make.exe toto  
clean :  
    -del toto.o


 
Erreur (après un build sous eclipse avec CDT):
 

mingw32-make.exe all  
mingw32-make.exe toto  
mingw32-make.exe[1]: Entering directory `D:/prog/workspace/toto'
mingw32-make.exe[1]: *** No rule to make target `\\Program Files\\MinGW\\lib\\gcc\\mingw32\\3.4.2\\"', needed by `toto.o'.  Stop.
mingw32-make.exe[1]: Leaving directory `D:/prog/workspace/toto'
mingw32-make.exe: *** [all] Error 2


 
Je ne comprends pas l'erreur sur la ligne marquée "Stop" :/
 
Quelqu'un peut corriger mon makefile ?  [:amandine75011]  
 


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
mood
Publicité
Posté le 20-08-2006 à 02:44:16  profilanswer
 

n°1427868
Lam's
Profil: bas.
Posté le 20-08-2006 à 08:11:00  profilanswer
 

Je suis pas sûr que tu puisses mettre des espaces avant le ":".
 
Et la dépendence entre all et toto peut être faite à l'intérieur du makefile ici.
 


toto: toto.o  
    g++ -o toto toto.o -L "C:\\Program\ Files\\MinGW\\lib\\gcc\\mingw32\\3.4.2\\" -lstdc++
 
toto.o: toto.cpp  
    g++ -ggdb -c toto.cpp
 
all: toto
 
clean:  
    -del toto.o


n°1427871
Giz
Posté le 20-08-2006 à 09:30:00  profilanswer
 

mingw32-make.exe all  
mingw32-make.exe: *** No rule to make target `\\Program Files\\MinGW\\lib\\gcc\\mingw32\\3.4.2\\"', needed by `toto.o'.  Stop.


 
[:petrus75]


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
n°1427874
olivthill
Posté le 20-08-2006 à 09:46:38  profilanswer
 

Il semble que make croit à tort que "C:\\...." soit un nom de fichier cible au lieu d'être un chemin vers les bibliothèques.
C'est peut-être un autre problème d'espace. Il faudrait peut-être essayer sans espace entre -L et "C:\\..."
J'ai remarqué que la syntaxe des makefile est très stricte sur les espaces et les tabulations. Mais le problème vient peut-être d'ailleurs.

n°1427880
Giz
Posté le 20-08-2006 à 09:58:14  profilanswer
 

ça marche pas mieux.
 
NB : Tu confonds avec la syntaxe du -l (auquel on spécifie le nom de la librairie que l'on doit "coller" au -l). le -L est le chemin (path) où trouver les librairies...et là il ne faut pas coller [:spamafote]. Makefile powaah ! :o


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
n°1427883
Lam's
Profil: bas.
Posté le 20-08-2006 à 10:06:26  profilanswer
 

Zarb. Et avec un backslash devant le ":" de C:\Program Files ?
Ou en utilisant directement la variable d'environnement "ProgramFiles" ?

n°1427888
olivthill
Posté le 20-08-2006 à 10:15:03  profilanswer
 

On peut remplacer les doubles antishlash "\\" par des slashs ordianires "/"
(J'utilise moi-même Dev-c++ qui tourne avec mingw. Dans mes makefiles pour Windows, de simples slashs "/" sont utilisés, et le nom du chemin de la bibliothèque est collé au -L majuscule)

n°1427890
Giz
Posté le 20-08-2006 à 10:23:01  profilanswer
 

Bon je confirme que ceci marche :
 

toto: toto.o  
 g++ -o toto toto.o -L "C:\\Program\ Files\\MinGW\\lib\\gcc\\mingw32\\3.4.2\\" -lstdc++
toto.o: toto.cpp  
 g++ -ggdb -c toto.cpp
all: toto  
clean:  
 -del toto.o

 
 
L'erreur était qu'à la 2ème ligne il manquait une tabulation [:petrus75] ... merci le débuggeur de ton message explicite  :o  
 


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
n°1427987
el muchach​o
Comfortably Numb
Posté le 20-08-2006 à 13:43:38  profilanswer
 
n°1427988
el muchach​o
Comfortably Numb
Posté le 20-08-2006 à 13:45:44  profilanswer
 

Ceci dit, si tu peux utiliser FTjam à la place, surtout ne te prive pas.[:petrus75]


Message édité par el muchacho le 20-08-2006 à 13:54:04

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 20-08-2006 à 13:45:44  profilanswer
 

n°1427991
kadreg
profil: Utilisateur
Posté le 20-08-2006 à 13:54:09  profilanswer
 

make, sapu :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Makefile : 10 ans plus tard ... j'ai oublié la syntaxe

 

Sujets relatifs
[Résolu] Erreur de syntaxe, qui peut m'aider ?Pb de syntaxe avec reg (batch)
Petit soucis de syntaxe SQL... Je paye ma soeur pour une solution!Question sur la syntaxe d'un lien hypertexte
Question de syntaxe, comment faire plus simple??MySQL 5 -- Syntaxe SQL
Syntaxe XSD spécifiqueerreur de syntaxe
Syntaxe inconnue[PB] quel freeware pr compiler faciler du C sous XP avec un makefile
Plus de sujets relatifs à : Makefile : 10 ans plus tard ... j'ai oublié la syntaxe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR