make: *** Pas de règle pour faire de la cible "all". Arrêter. Erreur Eclipse

je viens de télécharger Eclipse CDT developer kit (87MB) pour Windows. J'ai aussi installé MinGW, et msys. J'ai aussi ajouté ceci à PATH: C:msys1.0bin;C:mingwbin. et redémarré l'ordinateur après que. J'ai vérifié par type "- version" dans cmd et il fonctionne.

Cependant, pour une raison quelconque, Je ne peux pas compiler mon projet C. Je ne reçois pas de fichiers binaires et je n'ai que les choses suivantes en COnsole:

**** Build of configuration Default for project XXX ****

make all 
make: *** No rule to make target `all'.  Stop.

Quelqu'un pourrait-il m'aider avec cette s'il vous plaît?

18
demandé sur chepukha 2010-09-15 09:16:36

5 réponses

référence Pour l'avenir, si vous tentez d'importer un projet existant avec un makefile...

ce message apparaîtra toujours si votre makefile n'a pas de règle du" tout". L'utilisation de l'option" Générer des Makefiles automatiquement " devrait s'occuper de cela automatiquement. Si vous ne voulez pas de makefiles faits pour vous, vous avez au moins 3 options simples...

Option 1

si vous ne voulez pas pour utiliser une règle de ce nom, utilisez la solution de twokats. Voici une clarification.

  1. Aller à l'Propriétés du Projet -> C/C++ Build -> Comportement de l'Onglet.
  2. Laisser Construire (En Incrémental) Vérifié.
  3. supprimer "tout" de la zone de texte à côté de Build (Incremental Build).

cela permet à Eclipse de savoir que vous n'essayez pas d'utiliser un make target appelé "all". Pour quelque raison, qui est la défaut.

Option 2

utilisez quelque chose de similaire au makefile D'Etiennebr. Note, la ligne all: $(TARGET) est la règle Qu'Eclipse se plaint qu'elle ne trouve pas.

Option 3

Substitution", tous" avec un nom de règle de votre choix, et assurez-vous d'inclure cette règle dans votre makefile.

10
répondu drmuelr 2013-06-17 03:22:27

juste pour votre référence, il y a une façon de configurer les options de compilation CDT. J'ai eu ce même message d'erreur (bien que je a ont une cible tout simplement pas nommé "tous") et a trouvé cette solution (pour Galileo + CDT):

faites un clic droit sur votre projet et choisissez propriétés . La boîte de dialogue Propriétés apparaîtra et vous devriez voir une option C/C++ Build où vous pouvez définir des options de construction spécifiques. Mettez cet élément en surbrillance, et la page des propriétés apparaîtra. Choisissez la configuration que vous souhaitez modifier, puis dans la section ci-dessous que vous devriez voir 2 onglets: paramètres de constructeur et comportement . C'est le comportement onglet que vous voulez. Dans cette section, vous pouvez définir des préférences pour les paramètres de construction et les paramètres d'établi ssage, y compris spécifier un nom de cible (par défaut est "tout") ou désactiver les constructions automatiques.

ce fut incroyablement utile pour moi quand j'ai commencé à utiliser le CDT. Mon code source est séparé de la zone de compilation, et jusqu'à ce que je configure, aucun Makefile n'existe. Quand j'ai configuré, mon nom de cible par défaut est explicitement "default", pas"all". C'était ennuyeux d'avoir Eclipse signaler une erreur dans mon projet avant que je n'ai rien. Mettre en place l'environnement correspondant à mon développement a fait des merveilles. HTH.

6
répondu twokats 2010-09-16 20:50:15

clic droit sur les propriétés du projet - > C / C++ Build, dans le "Builder Settings" cochez l'option "Generate Makefiles automatically", puis sélectionnez l'option" Builder type "pour" Internal builder", puis cliquez sur ok, le problème a été résolu!

5
répondu user2913643 2015-05-27 08:20:47

j'ai passé beaucoup de temps sur cette erreur et maintenant j'ai réalisé que les projets qui ne sont pas compilés ont été créés avant que J'installe MinGW et msys donc il n'y avait pas de makefile avant. Et il n'y avait pas de dossier include avec lien vers le makefile. C'est la raison pour laquelle je n'ai pas pu le compiler. Maintenant que je crée un nouveau projet, c'est bon.

cependant, je me demande s'il y a un moyen d'ajouter le chemin pour makefile pour les projets précédents?

Merci

2
répondu chepukha 2010-09-15 05:22:27

Vous devriez jeter un oeil à votre makefile (ou en créer un si absent). C'est le makefile par défaut:

CXXFLAGS =  -O2 -g -Wall -fmessage-length=0
OBJS =      main.cpp
LIBS =
TARGET =      main.exe

$(TARGET):  $(OBJS)
    $(CXX) -o $(TARGET) $(OBJS) $(LIBS)
all:    $(TARGET)
clean:
    rm -f $(OBJS) $(TARGET)
2
répondu Etienne Racine 2010-12-03 16:31:41