sim*_*sim 6 protocol-buffers caffe
我正在尝试安装Caffe,我遇到了这个令人沮丧的错误.当我跑步时,make
我得到以下内容:
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
Run Code Online (Sandbox Code Playgroud)
我正在使用Google协议缓冲区2.6.1(https://developers.google.com/protocol-buffers/docs/downloads),我确实已将该目录添加到PATH.common.h文件肯定在目录中(我亲眼看到它),但不知何故它无法检测到它.我不知道该怎么做,这个问题的所有解决方案似乎都不适合我.
任何见解将不胜感激.我怀疑我在某处忽略了一步,因为我对Linux很陌生.
非常感谢你.
Ken*_*rda 11
PATH
告诉你的shell在哪里搜索命令.它不会告诉编译器在哪里搜索标头.要告诉编译器在特定目录中查找标头,您需要使用该-I
标志.例如:
g++ -I/path/to/protobuf/include -c my-source.cc
Run Code Online (Sandbox Code Playgroud)
您需要说服构建系统将此标志添加到编译器命令行.所有合理的构建系统都有一些方法可以做到这一点,但细节有所不同.对于autoconf,您可以指定何时运行configure:
./configure CXXFLAGS=-I/path/to/protobuf/include
Run Code Online (Sandbox Code Playgroud)
对于cmake,我认为你可以做这样的事情(未经测试):
cmake -DCMAKE_CXX_FLAGS=-I/path/to/protobuf/include
Run Code Online (Sandbox Code Playgroud)
或者,如果您将protobuf安装到标准位置 - /usr
或者/usr/local
(或者将标题放在/usr/include/google/protobuf
或中/usr/local/include/google/protobuf
),您可能不会遇到此问题.
另请注意,几乎所有Linux发行版都有一个Protobuf包,您应该使用它而不是从源代码安装Protobuf.您将需要-dev
或-devel
包以获取标题.在Debian/Ubuntu上:
sudo apt-get install libprotobuf-dev protobuf-compiler
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23994 次 |
最近记录: |