编译Tensorflow时Protobuf出错

时间:2016-08-31 13:48:15

标签: c++ makefile tensorflow

我目前正在尝试在非bazel项目中使用Tensorflow的共享库。

所以我使用:

构建了.so文件
  

bazel build //tensorflow:libtensorflow.so

然后我按照here.

所述加载了依赖项

我在Makefile中添加了以下标志:

  

CFLAGS + = -I / home / alpy / tensorflow / bazel-genfiles       CFLAGS + = -I / home / alpy / tensorflow /       CFLAGS + = -I / home / alpy / tensorflow / tensorflow / contrib / makefile / downloads / eigen-latest /

     

LDFLAGS + = -L ../ resources /

     

LDFLAGS + = -ltensorflow.so

当我这样做时,我得到了这个相当奇怪的错误:

In file included from /home/alpy/tensorflow/tensorflow/core/public/session.h:22:0,
                 from ../src/conversion.h:14,
                 from ../src/conversion.cpp:1:
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:143:3: error: ‘PROTOBUF_DEPRECATED_ATTR’ does not name a type
   PROTOBUF_DEPRECATED_ATTR void clear_version();
   ^
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:144:3: error: ‘PROTOBUF_DEPRECATED_ATTR’ does not name a type
   PROTOBUF_DEPRECATED_ATTR static const int kVersionFieldNumber = 3;
   ^
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:145:3: error: ‘PROTOBUF_DEPRECATED_ATTR’ does not name a type
   PROTOBUF_DEPRECATED_ATTR ::google::protobuf::int32 version() const;
   ^
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:146:3: error: ‘PROTOBUF_DEPRECATED_ATTR’ does not name a type
   PROTOBUF_DEPRECATED_ATTR void set_version(::google::protobuf::int32 value);
   ^
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:273:37: error: no ‘void tensorflow::GraphDef::clear_version()’ member function declared in class ‘tensorflow::GraphDef’
 inline void GraphDef::clear_version() {
                                     ^
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:276:54: error: no ‘google::protobuf::int32 tensorflow::GraphDef::version() const’ member function declared in class ‘tensorflow::GraphDef’
 inline ::google::protobuf::int32 GraphDef::version() const {
                                                      ^
/home/alpy/tensorflow/bazel-genfiles/tensorflow/core/framework/graph.pb.h:280:66: error: no ‘void tensorflow::GraphDef::set_version(google::protobuf::int32)’ member function declared in class ‘tensorflow::GraphDef’
 inline void GraphDef::set_version(::google::protobuf::int32 value) {
顺便说一下,我加载了protobuf,就像我在上面链接的页面上所描述的那样。

1 个答案:

答案 0 :(得分:1)

我认为问题已解决,如下所述:Google Groups discussion

只需添加新的CFLAG:

-DPROTOBUF_DEPRECATED_ATTR=""