2010-09-03 7 views
2

J'ai un projet makefile avec makefile généré par Eclipse CDT (Helios, MinGW). La commande "clean" ne fonctionne pas parce que la commande "del" est exécutée avec des arguments comme ./src/myfile.o, mais sur Windows cela ne fonctionne pas (devrait être. \ Src \ myfile.o). Comment puis-je dire à Eclipse d'utiliser le séparateur de chemin Windows ou sinon remplacer la commande "del" par quelque chose de différent (je pourrais facilement écrire un script batch qui remplace les barres obliques par des barres obliques inverses)?Eclipse CDT créé makefile ne peut pas "nettoyer" sur Windows

Merci pour tous les conseils!

Répondre

0

Editez les fichiers makefiles pour utiliser la commande mingw rm à la place?

+0

est-ce possible? Veuillez noter que les makefiles sont générés automatiquement par Eclipse. – Philipp

+0

OK, ma mauvaise. Quand vous avez parlé de makefiles, je pensais que vous parliez d'un projet CDT _Makefile_. Vous pouvez toujours passer à l'un d'entre eux et écrire les makefiles vous-même? – crazyscot

2

dans votre répertoire bin msys (C: \ msys \ 1.0 \ bin sur ma machine) créez une copie de rm.exe et renommez-la del.exe.

Ceci est un hack. Je ne connais pas les différences entre les arguments rm et del. la fonctionnalité de base est là. (supprimer file1 file2 filen)

Dans windows il n'y a pas del.exe, la fonctionnalité de suppression est intégrée dans CMD.exe. eclipse exécute les commandes dans le shell msys qui n'a pas la fonctionnalité del. Cela vous empêche d'ajouter un chemin vers Eclipse dans lequel rechercher del.exe.

J'ai essayé beaucoup de choses différentes pour que la gestion réussisse à mettre "RM: = rm" dans le makefile mais a échoué.

0

Avant de renommer rm.exe en del.exe, vérifiez le chemin dans Eclipse. Le chemin doit comporter des séparateurs de chemin Unix (barre oblique, /) et non le séparateur de chemin d'accès Windows (barre oblique inverse, \). Cela a résolu le problème de mon côté.

3

La meilleure option est de télécharger et installer GnuUtils http://sourceforge.net/projects/gnuwin32/files/coreutils/5.3.0/coreutils-5.3.0.exe/download et ajoutez le répertoire d'installation (C: \ ProgramFile ??? \ GnuWin32 \ bin) à votre chemin de fenêtres et redémarrez eclipse.Eclipse doit exécuter rm-rf maintenant .. .si cela ne marche toujours pas ... redémarrez Windows et vérifiez à nouveau votre chemin pour voir s'il a \ GnuWin32 \ bin ... puis redémarrez eclipse ...

4

Il existe une solution simple, créez un fichier makefile.defs dans votre projet principal répertoire avec le contenu suivant:

RM := rm -rf 

Fondamentalement, ce fichier vous permet de remplacer Les variables du fichier makefile généré automatiquement et RM sont wrapper pour la commande remove.

Questions connexes