Make: *** No rule to make target 'Debug'. Stop.

Fermé
moiCmoiiii - 20 août 2013 à 03:45
 moiCmoiiii - 20 août 2013 à 14:34
Bonsoir,
lors de la compilation d'un code à l'aide du code blocks ce message m'a était affiché :

-------------- Build: Debug in lcrt_code (compiler: GNU GCC Compiler)---------------

Running command: make -f /home/benticha/Bureau/stage_initiation/lcrt-1.1.2/Makefile Debug
make: *** No rule to make target 'Debug'. Stop.
Process terminated with status 2 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)

ça veux dire quoi ? et comment corriger l'erreur ?



1 réponse

[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084
Modifié par [Dal] le 20/08/2013 à 09:51
Salut moiCmoiiii,

Pour compiler un programme créé par quelqu'un d'autre, il faut lire les instructions laissées par le concepteur à cet effet.

S'il s'agit de lcrt sous Linux, tes sources doivent contenir ce fichier :

https://code.google.com/archive/p/lcrt/source

Le programme utilise autotools, donc à la ligne de commande Linux, il faut faire la séquence classique suivante de commandes, rappelée par cette documentation, pour créer le fichier Makefile, compiler, puis installer le programme compilé :

./configure
make
make install

Préalablement, il te faudra disposer des dépendances nécessaires à la compilation. Vois les instructions.


Dal
0
Merci.
j'ai déjà fait la séquence :
./configure
make
make install

mais ça change rien.

"Préalablement, il te faudra disposer des dépendances nécessaires à la compilation. Vois les instructions."
j'ai pas compris.
0
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084
Modifié par [Dal] le 20/08/2013 à 13:20
Si tu as fait la séquence en question et qu'aucun message d'erreur ne s'est produit, cela signifie que tu as généré le fichier Makefile, que tu as compilé le programme, et que tu l'as installé. Tu n'a pas à utiliser Codeblocks (en fait, tu ne devrais pas, le source n'est pas prévu pour, c'est ce que je te disais en t'indiquant que le programme source utilise autotools). Si tu tiens à utiliser Codeblocks pour une raison qui m'échappe, il faudra que tu configures ton projet Codebocks pour qu'il fasse ce que fait le Makefile généré en lançant "./configure".

S'agissant des dépendances, on appelle "dépendance" une ressource dont tu dois préalablement disposer pour pouvoir compiler le code. Si tu as compilé sans erreurs en faisant "make", cela signifie que tu les as déjà sur ton système.

Autrement, la documentation que j'ai signalée les évoque en ces termes (sic) :

Depend library
==================

lcrt is writen with GTK, and use another widget named vte-terminal, so to
compile it, you should have follow libraries:

libgtk2.0-dev
libvte-dev
libsqlite3-dev

In Ubuntu system, you can install them with command:

sudo apt-get install libgtk2.0-dev libvte-dev libsqlite3-dev

In Fedora system, you can install then with command:

yum install gtk-devel vte-devel sqlite3-devel

Depend programe
==================

Now you have installed depend libraries of lcrt, but to compile it, you should
install some toolchain:

make
pkg-config
gcc



Dal

Edit: clarifications
0
pour les dépendances c déjà fait..
" il faudra que tu configures ton projet Codebocks pour qu'il fasse ce que fait le Makefile généré en lançant "./configure". "
comment ?
0
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084
Modifié par [Dal] le 20/08/2013 à 14:19
comme Codeblocks ne gère pas les outils autotools, tu fais cela manuellement : ouvre (avec un éditeur de texte) le fichier "Makefile" créé après avoir lancé "./configure", comprend ce qu'il fait, paramètre le projet avec les menus de Codeblocks en essayant, autant que possible, de faire la même chose.

Je ne le te recommande cependant pas. Un fichier Makefile est très flexible (et peut être très complexe, surtout lorsqu'il est généré ainsi) et peut comporter, outre des directives de compilation, des commandes système ou des traitements que tu ne peux pas répliquer dans une configuration de projet dans un EDI.

Il est préférable d'utiliser un EDI qui utilise autotools (ou pas d'EDI du tout).

Anjuta, sous Linux gère nativement autotools : http://anjuta.sourceforge.net/documents/C/anjuta-advanced-tutorial/ et https://developer.gnome.org/anjuta-build-tutorial/stable/index-info.html.en

Eclipse dispose d'un plug-in pour CDT, qui permet l'intégration des autotools.: http://wiki.eclipse.org/Linux_Tools_Project/Autotools/User_Guide

Personnellement, avec ce type de projets, et sous Linux de façon générale, je me passe d'EDI.


Dal
0
OK merci bien , c'est mon encadreur qui a demandé d'utiliser un EDI si non j'ai déjà installé le logiciel en utilisant seulement le terminal ..
je vais essayé avec eclipse.
0