protobuf编译

Protocol Buffers是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化
https://github.com/protocolbuffers/protobuf.git
编译

# apt-get install autoconf automake libtool curl
# autoconf
# ./configure --prefix=/home/protobuf/install
# make
# make install

出现如下错误:

configure.ac:17: error: possibly undefined macro: AM_MAINTAINER_MODE

解决办法:

//执行aclocal命令
# aclocal
//再次执行autoconf命令

出现如下错误:

configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

解决办法:

//执行autoreconf命令
# autoreconf -vif

编译完成:

# tree install
install
├── bin
│   └── protoc
├── include
│   └── google
│       └── protobuf
│           ├── any.h
│           ├── any.pb.h
│           ├── any.proto
│           ├── api.pb.h
│           ├── api.proto
│           ├── arena.h
│           ├── arenastring.h
│           ├── compiler
│           │   ├── code_generator.h
│           │   ├── command_line_interface.h
│           │   ├── cpp
│           │   │   └── cpp_generator.h
│           │   ├── csharp
│           │   │   ├── csharp_generator.h
│           │   │   └── csharp_names.h
│           │   ├── importer.h
│           │   ├── java
│           │   │   ├── java_generator.h
│           │   │   └── java_names.h
│           │   ├── javanano
│           │   │   └── javanano_generator.h
│           │   ├── js
│           │   │   └── js_generator.h
│           │   ├── objectivec
│           │   │   ├── objectivec_generator.h
│           │   │   └── objectivec_helpers.h
│           │   ├── parser.h
│           │   ├── plugin.h
│           │   ├── plugin.pb.h
│           │   ├── plugin.proto
│           │   ├── python
│           │   │   └── python_generator.h
│           │   └── ruby
│           │       └── ruby_generator.h
│           ├── descriptor_database.h
│           ├── descriptor.h
│           ├── descriptor.pb.h
│           ├── descriptor.proto
│           ├── duration.pb.h
│           ├── duration.proto
│           ├── dynamic_message.h
│           ├── empty.pb.h
│           ├── empty.proto
│           ├── extension_set.h
│           ├── field_mask.pb.h
│           ├── field_mask.proto
│           ├── generated_enum_reflection.h
│           ├── generated_enum_util.h
│           ├── generated_message_reflection.h
│           ├── generated_message_util.h
│           ├── io
│           │   ├── coded_stream.h
│           │   ├── printer.h
│           │   ├── strtod.h
│           │   ├── tokenizer.h
│           │   ├── zero_copy_stream.h
│           │   ├── zero_copy_stream_impl.h
│           │   └── zero_copy_stream_impl_lite.h
│           ├── map_entry.h
│           ├── map_entry_lite.h
│           ├── map_field.h
│           ├── map_field_inl.h
│           ├── map_field_lite.h
│           ├── map.h
│           ├── map_type_handler.h
│           ├── message.h
│           ├── message_lite.h
│           ├── metadata.h
│           ├── reflection.h
│           ├── reflection_ops.h
│           ├── repeated_field.h
│           ├── repeated_field_reflection.h
│           ├── service.h
│           ├── source_context.pb.h
│           ├── source_context.proto
│           ├── struct.pb.h
│           ├── struct.proto
│           ├── stubs
│           │   ├── atomicops.h
│           │   ├── atomicops_internals_arm64_gcc.h
│           │   ├── atomicops_internals_arm_gcc.h
│           │   ├── atomicops_internals_arm_qnx.h
│           │   ├── atomicops_internals_atomicword_compat.h
│           │   ├── atomicops_internals_generic_gcc.h
│           │   ├── atomicops_internals_macosx.h
│           │   ├── atomicops_internals_mips_gcc.h
│           │   ├── atomicops_internals_pnacl.h
│           │   ├── atomicops_internals_power.h
│           │   ├── atomicops_internals_solaris.h
│           │   ├── atomicops_internals_tsan.h
│           │   ├── atomicops_internals_x86_gcc.h
│           │   ├── atomicops_internals_x86_msvc.h
│           │   ├── atomic_sequence_num.h
│           │   ├── bytestream.h
│           │   ├── callback.h
│           │   ├── casts.h
│           │   ├── common.h
│           │   ├── fastmem.h
│           │   ├── hash.h
│           │   ├── logging.h
│           │   ├── macros.h
│           │   ├── mutex.h
│           │   ├── once.h
│           │   ├── platform_macros.h
│           │   ├── port.h
│           │   ├── scoped_ptr.h
│           │   ├── shared_ptr.h
│           │   ├── singleton.h
│           │   ├── status.h
│           │   ├── stl_util.h
│           │   ├── stringpiece.h
│           │   ├── template_util.h
│           │   └── type_traits.h
│           ├── text_format.h
│           ├── timestamp.pb.h
│           ├── timestamp.proto
│           ├── type.pb.h
│           ├── type.proto
│           ├── unknown_field_set.h
│           ├── util
│           │   ├── field_comparator.h
│           │   ├── field_mask_util.h
│           │   ├── json_util.h
│           │   ├── message_differencer.h
│           │   ├── time_util.h
│           │   ├── type_resolver.h
│           │   └── type_resolver_util.h
│           ├── wire_format.h
│           ├── wire_format_lite.h
│           ├── wire_format_lite_inl.h
│           ├── wrappers.pb.h
│           └── wrappers.proto
└── lib
    ├── libprotobuf.a
    ├── libprotobuf.la
    ├── libprotobuf-lite.a
    ├── libprotobuf-lite.la
    ├── libprotobuf-lite.so
    ├── libprotobuf-lite.so.10
    ├── libprotobuf-lite.so.10.0.0
    ├── libprotobuf.so
    ├── libprotobuf.so.10
    ├── libprotobuf.so.10.0.0
    ├── libprotoc.a
    ├── libprotoc.la
    ├── libprotoc.so
    ├── libprotoc.so.10
    ├── libprotoc.so.10.0.0
    └── pkgconfig
        ├── protobuf-lite.pc
        └── protobuf.pc
posted @ 2022-09-11 23:35  thomas_blog  阅读(160)  评论(0编辑  收藏  举报