protobuf gemeinsam.h "No such file"
Bin ich versucht zu installieren, Caffe, und ich habe mich in dieser frustrierenden Fehler. Wenn ich make
bekomme ich die folgende:
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
Ich bin mit dem Google-Protokoll-Puffer 2.6.1 (https://developers.google.com/protocol-buffers/docs/downloads), und ich habe in der Tat Hinzugefügt, die zu dem Verzeichnis. Der gemeinsame.h-Datei ist definitiv vorhanden in dem Verzeichnis (ich sehe es mit meinen eigenen Augen), aber irgendwie ist es nicht in der Lage es zu erkennen. Ich habe keine Ahnung, was zu tun ist, und alle Lösungen von dieses Problem scheinen nicht zu funktionieren für mich.
Jede Einsicht wäre sehr geschätzt. Ich vermute, ich bin zu vernachlässigen, ein Schritt irgendwo hin, als ich bin ziemlich neu bei Linux.
Danke Ihnen sehr.
InformationsquelleAutor sim | 2015-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
PATH
sagt der shell, wo die Suche nach Befehlen. Es nicht, sagen Sie dem compiler, wo die Suche nach Header. Erzählen Sie Ihren compiler zu finden-Header in einem bestimmten Verzeichnis, die Sie verwenden müssen, die-I
Flagge. Zum Beispiel:Müssen Sie davon zu überzeugen, Ihre build-system hinzufügen, wird dieses flag auf der compiler-Kommandozeile. Alle vernünftigen build-Systeme haben eine Möglichkeit, dies zu tun, aber die details variieren. Für autoconf können Sie angeben, wenn Sie configure ausführen:
Für cmake ich denke, man kann so etwas (nicht getestet):
Alternativ, würden Sie wahrscheinlich nicht dieses problem haben, wenn Sie installiert protobuf, um den standard-Speicherort-entweder
/usr
oder/usr/local
(daher die Verteilerköpfe in/usr/include/google/protobuf
oder/usr/local/include/google/protobuf
).Beachten Sie auch, dass fast alle Linux-Distributionen haben eine Protobuf-Paket, und Sie sollten wahrscheinlich verwenden, eher als die Installation Protobuf aus dem source-code. Sie müssen die
-dev
oder-devel
Paket um Header. Auf Debian/Ubuntu:Eh? google/protobuf/stubs/common.h ist definitiv noch da und installiert werden: github.com/google/protobuf/blob/master/src/Makefile.am#L85 (Und sowieso, OP ausdrücklich gesagt, Sie waren mit 2.6.1.)
InformationsquelleAutor Kenton Varda