web-dev-qa-db-fra.com

"Aucune règle pour que la cible 'installe'" ... Mais Makefile existe

Je rencontre des problèmes lors de l'installation d'une bibliothèque C++. La commande CMake réussit et génère le Makefile, mais elle avertit:

CMake Warning (dev) at CMakeLists.txt:27 (LINK_DIRECTORIES):
This command specifies the relative path

../usr/local/lib

as a link directory.

Policy CMP0015 is not set: link_directories() treats paths relative to the
source dir.  Run "cmake --help-policy CMP0015" for policy details.  Use the
cmake_policy command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

La ligne 27 dans CMakeLists.txt est

Boost_LIBRARY_DIR_DEBUG:PATH=/usr/local/lib

Je ne vois pas pourquoi cet avertissement me causerait des problèmes. Mais quand je lance make install, j'obtiens une erreur:

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

Des idées?

4
Sean

Pourriez-vous fournir un makefile complet? Mais pour le moment, je peux dire - vous devriez vérifier que la cible "install" existe déjà. Alors, vérifiez que Makefile contient un

install: (anything there)

ligne. Si ce n'est pas le cas, il n'y a pas de cible de ce type et make a donc raison. Vous devriez probablement utiliser juste la commande "make" pour compiler et ensuite l’utiliser telle quelle ou l’installer vous-même, manuellement.

L'installation n'est pas une norme de fabrication, c'est simplement une cible commune, qui pourrait exister, mais n'est pas nécessaire.

8
Tomir Rogi Szawok

Je recevais le même message d'erreur et mon problème était que je n'étais pas dans le bon répertoire lors de l'exécution de la commande make install. Quand j'ai changé dans le répertoire qui avait mon makefile cela a fonctionné.

Alors peut-être que vous n'êtes pas dans le bon répertoire.

2
Jamie

J'ai aussi rencontré la même erreur. Voici le correctif: Si vous utilisez Cmake-GUI :

  1. Nettoyez le cache des bibliothèques chargées dans Cmake.
  2. Configurez les bibliothèques.
  3. Générez le fichier Unix.

Si vous avez raté la 3ème étape: 

*** Aucune règle pour rendre la cible `installer '. Arrêtez. 

une erreur se produira.

0
FutureJJ