gpt4 book ai didi

protocol-buffers - protobuf common.h "No such file"

转载 作者:行者123 更新时间:2023-12-04 13:49:01 24 4
gpt4 key购买 nike

我正在尝试安装 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

我正在使用 Google Protocol Buffer 2.6.1 ( https://developers.google.com/protocol-buffers/docs/downloads ),并且确实已将该目录添加到 PATH。 common.h 文件肯定在目录中(我亲眼看到它),但不知何故它无法检测到它。我不知道该怎么做,以及来自 this issue 的所有解决方案似乎对我不起作用。

任何见解将不胜感激。我怀疑我忽略了某个步骤,因为我对 Linux 还很陌生。

非常感谢。

最佳答案

PATH告诉你的 shell 在哪里搜索命令。它不会告诉您的编译器在哪里搜索头文件。要让编译器在特定目录中查找头文件,您需要使用 -I旗帜。例如:

g++ -I/path/to/protobuf/include -c my-source.cc

您需要说服您的构建系统将此标志添加到编译器命令行。所有合理的构建系统都有一些方法可以做到这一点,但细节各不相同。对于 autoconf,您可以在运行 configure 时指定:
./configure CXXFLAGS=-I/path/to/protobuf/include

对于 cmake,我认为您可以执行以下操作(未测试):
cmake -DCMAKE_CXX_FLAGS=-I/path/to/protobuf/include

或者,如果您将 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

关于protocol-buffers - protobuf common.h "No such file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32039549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com