web-dev-qa-db-fra.com

Eclipse CDT: pas de règle pour tout cibler

Mon CDT Eclipse n'arrête pas de se plaindre "make: *** aucune règle pour tout cibler" lorsque j'essaie de compiler le morceau de code ci-dessous: 

#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!!!" << endl; // prints Hello World!!!
  return 0;
}

Quelqu'un sait comment résoudre ce problème? J'ai lu le message avec le même titre: make: *** Pas de règle pour cibler "tous". Arrêtez. Erreur Eclipse Mais aucune de ces réponses ne vous aide ...

Merci beaucoup!

35
Mark Z.

Vous devez modifier les paramètres de votre projet afin qu'Eclipse-CDT gère vos Makefiles pour vous.

  1. Sélectionnez Projet-> Propriétés dans la barre de menus.
  2. Cliquez sur C/C++ Build à gauche dans la boîte de dialogue qui s’affiche.
  3. Sous l'onglet Paramètres du générateur à droite, sélectionnez "Générer automatiquement les fichiers Makefiles" dans la section Génération des fichiers Makefile.
  4. Hit OK et construire à nouveau.
36
ScoPi

"all" est un paramètre par défaut, même si l'onglet Behaviour-> Build (Construction incrémentielle) n'a pas de variable. J'ai résolu comme

  1. Accédez à Propriétés du projet> Génération C/C++> onglet Comportement.
  2. Laissez la construction (construction incrémentielle) cochée.
  3. Entrez "test" dans la zone de texte en regard de Générer (Génération incrémentielle).
  4. Projet de construction. Vous verrez un message d'erreur.
  5. Retournez à Build (Incremental Build) et supprimez "test".
  6. Projet de construction.
13
user1146300
  1. Sélectionnez Projet-> Propriétés dans la barre de menus.

  2. Cliquez sur C/C++ Build à gauche dans la boîte de dialogue qui s’affiche.

  3. Sous l'onglet Paramètres du générateur à droite, vérifiez et assurez-vous que "l'emplacement de génération" est correct.
10
raptoravis

Dans C/C++ Build -> Builder Settings, sélectionnez le générateur Internal (au lieu du générateur External).

Ça marche pour moi.

7
wall-e

Je viens de résoudre ce problème exact pour moi-même; même référencé cette question.

Je suppose que vous n'avez pas écrit la règle du "tout" dont se plaint Eclipse. Si tel est le cas, procédez comme suit:

  1. Accédez à Propriétés du projet> Génération C/C++> onglet Comportement.
  2. Laissez la construction (construction incrémentielle) cochée.
  3. Supprimez "tout" de la zone de texte en regard de Générer (Génération incrémentielle).
  4. Compiler loin!

Cela permet à Eclipse de savoir que vous n'essayez pas d'utiliser une cible de création appelée "tous". Pour une raison quelconque, c'est la valeur par défaut.

6
drmuelr

Vous avez 2 cas

  • Si vous créez vous-même un Makefile, allez à 
  1. Sélectionnez Projet-> Propriétés dans la barre de menus.
  2. Cliquez sur C/C++ Build à gauche dans la boîte de dialogue qui s’affiche.
  3. Désactiver la génération automatique du fichier makefile -> Sous l'onglet Paramètres du générateur, à droite, vérifiez et assurez-vous que "Emplacement de génération" est correct (c'est l'endroit où se trouve votre Makefile)
  • Si vous ne possédez pas de Makefile -> Vous avez besoin d’Eclipse DS-5 pour vous aider à créer un Makefile
  1. Sélectionnez Projet-> Propriétés dans la barre de menus.
  2. Cliquez sur C/C++ Build à gauche dans la boîte de dialogue qui s’affiche.
  3. Activer générer automatiquement le fichier makefile

Je vous conseille de créer Makefile par vous-même

3
Dang_Ho

Parfois, si vous créez une cible via make files, vérifiez de nouveau que tous les fichiers c sont nommés correctement avec la structure de fichier correcte. 

2
bilalraja

Projet -> Nettoyer -> Nettoyer tous les projets, puis Projet -> Construire le projet a fonctionné pour moi (j'ai vérifié automatiquement la création d'un fichier Make puis le revérifier avant de le faire). C'était pour un projet AVR (programmation de micro-processeur) via le plugin AVR CDT dans Eclipse Juno. 

2
Demortes

J'ai eu cette même erreur après avoir renommé et déplacé les fichiers source. Aucune des solutions proposées ne fonctionnait pour moi et j'ai suivi l'erreur en indiquant que les méta-fichiers du répertoire de débogage n'étaient pas mis à jour. Supprimer le répertoire de débogage entier et reconstruire le projet a résolu le problème pour moi.

1
Savvas Savvides

Encore une autre solution:

Je suis à l'intérieur du fichier objects.mk

################################################################################
# Automatically-generated file. Do not edit!
################################################################################

USER_OBJS := /home/../mylib.so

LIBS := -lstdc++fs -lGL -lGLU -lGLEW -lglut -lm -lmylib

alors n'a pas lu la première ligne. Puis modifié la ligne suivante. C'était un autre dossier de projets car je l'avais copiée à l'aide de la fonction "Copier/cloner un projet", ce qui était à l'origine de l'erreur. J'ai changé myLib.so en/adresse_proper/reallyMyLib.so et cela a fonctionné.

Attention: Cela peut endommager des lieux inconnus! Sauvegardez tout le projet avant de le faire. Parce qu'il dit "ne pas éditer".

Si les solutions ci-dessus ne vous convenaient pas - 

Il se peut que vous n’ayez pas installé correctement les packages du compilateur C++, envoyez ceci: (Instructions pour Win7, 32 bits/64 bits)

  1. Assurez-vous d’installer correctement un ou plusieurs des packages de compilateur C++ pris en charge:

    (J'ai installé MinGW (les vidéos d'installation sont disponibles sur YouTube))

    Si vous choisissez d'installer des paquets MinGW:

    • Téléchargez le programme d'installation de MinGW à partir de la page d'installation ci-dessus.
    • Exécutez le programme d'installation de MinGW et assurez-vous de choisir les packages suivants:

      - mingw-developer-toolkit 
      - mingw32-base 
      - mingw32-gcc-g ++ 
      - msys-base 

    • Ajoutez les chemins de bacs MinGW et MSYS à votre variable d’environnement PATH. Si vous ne modifiez pas les dossiers d’installation par défaut, vous devez ajouter:

    C:\MinGW\msys\1.0\bin;C:\MinGW\bin;
    • Déconnectez-vous et reconnectez-vous pour vous assurer que les vars de l'environnement démarrent
  2. Créez un nouveau projet C++ dans Eclipse:

    • Nouveau -> Projets C++
    • Choisissez le type de projet: Exécutables -> Projet Hello World C++
      (Maintenant à droite, sous Outils, vous verrez MinGW GCC)
    • Sélectionnez MinGW GCC dans la liste Chaînes d'outils.
    • Hit Terminer
  3. Dans votre projet Hello World, vous verrez le dossier + src et + includes (dans ce cas, vous êtes probablement prêt à partir).

  4. Projet de construction
  5. Exécuter!
0
Mercury