protobuf commun.h “Aucun fichier”
Je suis en train d'installer Caffe, et je suis en cours d'exécution dans cette frustrant d'erreur. Quand je lance make
je reçois le texte suivant:
CXX .build_release/src/caffe/proto/caffe.pb.cc
In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:9:42: fatal error: google/protobuf/stubs/common.h: No such file or directory
compilation terminated.
make: *** [.build_release/src/caffe/proto/caffe.pb.o] Error 1
Je suis en utilisant Google tampon protocole 2.6.1 (https://developers.google.com/protocol-buffers/docs/downloads), et j'ai en effet ajouté le répertoire du CHEMIN. La commune.h fichier est bel et bien là dans le répertoire (je le vois de mes propres yeux), mais de toute façon il est impossible de le détecter. Je n'ai aucune idée de quoi faire, et toutes les solutions de ce problème ne semble pas fonctionner pour moi.
Toute réflexion serait appréciée. Je pense que je suis négliger une étape quelque part, comme je suis plutôt nouvelle pour Linux.
Merci beaucoup.
OriginalL'auteur sim | 2015-08-16
Vous devez vous connecter pour publier un commentaire.
PATH
dit votre shell où chercher les commandes. Il ne dit pas que votre compilateur où chercher pour les en-têtes. De dire à votre compilateur pour trouver les en-têtes dans un répertoire particulier, vous devez utiliser le-I
drapeau. Par exemple:Vous devrez convaincre votre système de construction pour ajouter cet indicateur pour le compilateur de ligne de commande. Tous raisonnable de construire des systèmes avons encore du chemin à faire, mais les détails varient. Pour autoconf vous pouvez spécifier lorsque vous exécutez configuration:
Pour cmake je pense que vous pouvez faire quelque chose comme ça (pas testé):
Sinon, vous n'auriez sans doute pas ce problème si vous avez installé protobuf à l'emplacement standard --
/usr
ou/usr/local
(et donc de placer les en-têtes dans/usr/include/google/protobuf
ou/usr/local/include/google/protobuf
).Également noter que presque toutes les distributions Linux ont un Protobuf paquet, et vous devriez probablement utiliser plutôt que de l'installation de Protobuf à partir du code source. Vous aurez besoin de la
-dev
ou-devel
paquet pour récupérer les en-têtes. Sur Debian/Ubuntu:Hein??? google/protobuf/talons/commun.h est certainement encore là et installé: github.com/google/protobuf/blob/master/src/Makefile.am#L85 (Et de toute façon, OP explicitement dit qu'ils utilisaient 2.6.1.)
OriginalL'auteur Kenton Varda