web-dev-qa-db-fra.com

"make" et "make install" ne fonctionnent jamais

Les commandes make et make install utilisées pour installer un programme à partir d'une balle tar extraite ne fonctionnent jamais pour une raison quelconque.

La commande make me donne l'erreur suivante:

  make: *** No targets specified and no makefile found.  Stop.

et la commande make install me donne l'erreur suivante:

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

Pourquoi ces commandes ne s'exécutent-elles pas? Que dois-je faire pour résoudre ce problème?

7
Nirmik

Je pense que le problème est que vous n'avez pas les dépendances pour le programme en question, car même si vous avez exécuté ./configure, il ne contient que les fichiers appelés makefile.in et makefile.am, alors qu'il devrait y avoir un fichier appelé Makefile sans extension.

Si vous exécutez ./configure sans les dépendances, il ne génère pas de fichier makefile. L'exécution ultérieure de make donne exactement l'erreur que vous obtenez:

make: *** No targets specified and no makefile found. Stop.

Par conséquent, téléchargez la version dépendances de votre programme en consultant le fichier Lisez-moi inclus dans le téléchargement ou, si la source du programme se trouve dans les référentiels et que vous avez activé les référentiels source, exécutez

Sudo apt-get build-dep program

Après avoir obtenu les dépendances, exécutez à nouveau ./configure et maintenant, make et make install devraient fonctionner car il y aura un Makefile correct généré.

(Vous devrez peut-être également installer des packages tels que build-essential, qui contient des outils de compilation essentiels)

9
user76204

Parfois, il faut exécuter autoreconf pour générer le script configure, alors utilisez:

autoreconf -ivf
2
Colin Ian King

Peut-être que lorsque vous compilerez, vous le ferez en tant qu'utilisateur, puis vous effectuerez l'installation en tant que root, mais vous serez dans un autre répertoire.

Solution dans ce cas: en tant que racine, changez de répertoire dans votre répertoire de construction, puis: make install

Travaillé pour moi dans Debian Stretch.

0
iugamarian