Makefile : 10 ans plus tard ... j'ai oublié la syntaxe - C++ - Programmation
Marsh Posté le 20-08-2006 à 08:11:00
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.
|
Marsh Posté le 20-08-2006 à 09:30:00
mingw32-make.exe all |
Marsh Posté le 20-08-2006 à 09:46:38
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.
Marsh Posté le 20-08-2006 à 09:58:14
ç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 . Makefile powaah !
Marsh Posté le 20-08-2006 à 10:06:26
Zarb. Et avec un backslash devant le ":" de C:\Program Files ?
Ou en utilisant directement la variable d'environnement "ProgramFiles" ?
Marsh Posté le 20-08-2006 à 10:15:03
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)
Marsh Posté le 20-08-2006 à 10:23:01
Bon je confirme que ceci marche :
toto: toto.o |
L'erreur était qu'à la 2ème ligne il manquait une tabulation ... merci le débuggeur de ton message explicite
Marsh Posté le 20-08-2006 à 13:43:38
make, c'est que du bonheur
Marsh Posté le 20-08-2006 à 13:45:44
Ceci dit, si tu peux utiliser FTjam à la place, surtout ne te prive pas.
Marsh Posté le 20-08-2006 à 13:54:09
make, sapu
Marsh Posté le 20-08-2006 à 02:44:16
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 ?
---------------
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