Installation

C++

See https://github.com/protocolbuffers/protobuf/blob/main/src/README.md.

make protocol-buffers
cd protocol-buffers
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.1/protobuf-all-3.20.1.tar.gz
tar xvf protobuf-all-3.20.1.tar.gz
cd protobuf-all-3.20.1
./configure --prefix=$HOME/software/protobuf-3.20.1
make -j 20
make -j 10 check
make install 2>&1 | tee my-log.txt
cd $HOME/software/protobuf-3.20.1
tree . > tree-log.txt
$ export PKG_CONFIG_PATH=$HOME/software/protobuf-3.20.1:$PKG_CONFIG_PATH

$ pkg-config --cflags protobuf
-I/root/fangjun/software/protobuf-3.20.1/include

$ pkg-config --libs protobuf
-L/root/fangjun/software/protobuf-3.20.1/lib -lprotobuf

$ pkg-config --cflags --libs  protobuf
-I/root/fangjun/software/protobuf-3.20.1/include -L/root/fangjun/software/protobuf-3.20.1/lib -lprotobuf

$ pkg-config --libs-only-L  protobuf
-L/root/fangjun/software/protobuf-3.20.1/lib

$ pkg-config --libs-only-l  protobuf
-lprotobuf
$ export PATH=$HOME/software/protobuf-3.20.1/bin:$PATH
$ protoc --version
libprotoc 3.20.1
./code/my-log.txt (Installation logs)
 1Making install in .
 2make[1]: Entering directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1'
 3make[2]: Entering directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1'
 4make[2]: Nothing to be done for 'install-exec-am'.
 5 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/lib/pkgconfig'
 6 /usr/bin/install -c -m 644 protobuf.pc protobuf-lite.pc '/root/fangjun/software/protobuf-3.20.1/lib/pkgconfig'
 7make[2]: Leaving directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1'
 8make[1]: Leaving directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1'
 9Making install in src
10make[1]: Entering directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1/src'
11make[2]: Entering directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1/src'
12 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/lib'
13 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libprotobuf-lite.la libprotobuf.la libprotoc.la '/root/fangjun/software/protobuf-3.20.1/lib'
14libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.so.31.0.1 /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf-lite.so.31.0.1
15libtool: install: (cd /root/fangjun/software/protobuf-3.20.1/lib && { ln -s -f libprotobuf-lite.so.31.0.1 libprotobuf-lite.so.31 || { rm -f libprotobuf-lite.so.31 && ln -s libprotobuf-lite.so.31.0.1 libprotobuf-lite.so.31; }; })
16libtool: install: (cd /root/fangjun/software/protobuf-3.20.1/lib && { ln -s -f libprotobuf-lite.so.31.0.1 libprotobuf-lite.so || { rm -f libprotobuf-lite.so && ln -s libprotobuf-lite.so.31.0.1 libprotobuf-lite.so; }; })
17libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.lai /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf-lite.la
18libtool: install: /usr/bin/install -c .libs/libprotobuf.so.31.0.1 /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf.so.31.0.1
19libtool: install: (cd /root/fangjun/software/protobuf-3.20.1/lib && { ln -s -f libprotobuf.so.31.0.1 libprotobuf.so.31 || { rm -f libprotobuf.so.31 && ln -s libprotobuf.so.31.0.1 libprotobuf.so.31; }; })
20libtool: install: (cd /root/fangjun/software/protobuf-3.20.1/lib && { ln -s -f libprotobuf.so.31.0.1 libprotobuf.so || { rm -f libprotobuf.so && ln -s libprotobuf.so.31.0.1 libprotobuf.so; }; })
21libtool: install: /usr/bin/install -c .libs/libprotobuf.lai /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf.la
22libtool: warning: relinking 'libprotoc.la'
23libtool: install: (cd /root/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1/src; /bin/bash "/root/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1/libtool"  --silent --tag CXX --mode=relink g++ -pthread -DHAVE_PTHREAD=1 -DHAVE_ZLIB=1 -Wall -Wno-sign-compare -O2 -g -std=c++11 -DNDEBUG -version-info 31:1:0 -export-dynamic -no-undefined -Wl,--version-script=./libprotoc.map -o libprotoc.la -rpath /root/fangjun/software/protobuf-3.20.1/lib google/protobuf/compiler/code_generator.lo google/protobuf/compiler/command_line_interface.lo google/protobuf/compiler/cpp/cpp_enum.lo google/protobuf/compiler/cpp/cpp_enum_field.lo google/protobuf/compiler/cpp/cpp_extension.lo google/protobuf/compiler/cpp/cpp_field.lo google/protobuf/compiler/cpp/cpp_file.lo google/protobuf/compiler/cpp/cpp_generator.lo google/protobuf/compiler/cpp/cpp_helpers.lo google/protobuf/compiler/cpp/cpp_map_field.lo google/protobuf/compiler/cpp/cpp_message.lo google/protobuf/compiler/cpp/cpp_message_field.lo google/protobuf/compiler/cpp/cpp_padding_optimizer.lo google/protobuf/compiler/cpp/cpp_parse_function_generator.lo google/protobuf/compiler/cpp/cpp_primitive_field.lo google/protobuf/compiler/cpp/cpp_service.lo google/protobuf/compiler/cpp/cpp_string_field.lo google/protobuf/compiler/csharp/csharp_doc_comment.lo google/protobuf/compiler/csharp/csharp_enum.lo google/protobuf/compiler/csharp/csharp_enum_field.lo google/protobuf/compiler/csharp/csharp_field_base.lo google/protobuf/compiler/csharp/csharp_generator.lo google/protobuf/compiler/csharp/csharp_helpers.lo google/protobuf/compiler/csharp/csharp_map_field.lo google/protobuf/compiler/csharp/csharp_message.lo google/protobuf/compiler/csharp/csharp_message_field.lo google/protobuf/compiler/csharp/csharp_primitive_field.lo google/protobuf/compiler/csharp/csharp_reflection_class.lo google/protobuf/compiler/csharp/csharp_repeated_enum_field.lo google/protobuf/compiler/csharp/csharp_repeated_message_field.lo google/protobuf/compiler/csharp/csharp_repeated_primitive_field.lo google/protobuf/compiler/csharp/csharp_source_generator_base.lo google/protobuf/compiler/csharp/csharp_wrapper_field.lo google/protobuf/compiler/java/java_context.lo google/protobuf/compiler/java/java_doc_comment.lo google/protobuf/compiler/java/java_enum.lo google/protobuf/compiler/java/java_enum_field.lo google/protobuf/compiler/java/java_enum_field_lite.lo google/protobuf/compiler/java/java_enum_lite.lo google/protobuf/compiler/java/java_extension.lo google/protobuf/compiler/java/java_extension_lite.lo google/protobuf/compiler/java/java_field.lo google/protobuf/compiler/java/java_file.lo google/protobuf/compiler/java/java_generator.lo google/protobuf/compiler/java/java_generator_factory.lo google/protobuf/compiler/java/java_helpers.lo google/protobuf/compiler/java/java_kotlin_generator.lo google/protobuf/compiler/java/java_map_field.lo google/protobuf/compiler/java/java_map_field_lite.lo google/protobuf/compiler/java/java_message.lo google/protobuf/compiler/java/java_message_builder.lo google/protobuf/compiler/java/java_message_builder_lite.lo google/protobuf/compiler/java/java_message_field.lo google/protobuf/compiler/java/java_message_field_lite.lo google/protobuf/compiler/java/java_message_lite.lo google/protobuf/compiler/java/java_name_resolver.lo google/protobuf/compiler/java/java_primitive_field.lo google/protobuf/compiler/java/java_primitive_field_lite.lo google/protobuf/compiler/java/java_service.lo google/protobuf/compiler/java/java_shared_code_generator.lo google/protobuf/compiler/java/java_string_field.lo google/protobuf/compiler/java/java_string_field_lite.lo google/protobuf/compiler/js/js_generator.lo google/protobuf/compiler/js/well_known_types_embed.lo google/protobuf/compiler/objectivec/objectivec_enum.lo google/protobuf/compiler/objectivec/objectivec_enum_field.lo google/protobuf/compiler/objectivec/objectivec_extension.lo google/protobuf/compiler/objectivec/objectivec_field.lo google/protobuf/compiler/objectivec/objectivec_file.lo google/protobuf/compiler/objectivec/objectivec_generator.lo google/protobuf/compiler/objectivec/objectivec_helpers.lo google/protobuf/compiler/objectivec/objectivec_map_field.lo google/protobuf/compiler/objectivec/objectivec_message.lo google/protobuf/compiler/objectivec/objectivec_message_field.lo google/protobuf/compiler/objectivec/objectivec_oneof.lo google/protobuf/compiler/objectivec/objectivec_primitive_field.lo google/protobuf/compiler/php/php_generator.lo google/protobuf/compiler/plugin.lo google/protobuf/compiler/plugin.pb.lo google/protobuf/compiler/python/python_generator.lo google/protobuf/compiler/python/python_helpers.lo google/protobuf/compiler/python/python_pyi_generator.lo google/protobuf/compiler/ruby/ruby_generator.lo google/protobuf/compiler/subprocess.lo google/protobuf/compiler/zip_writer.lo -lpthread libprotobuf.la -lz )
24libtool: install: /usr/bin/install -c .libs/libprotoc.so.31.0.1T /root/fangjun/software/protobuf-3.20.1/lib/libprotoc.so.31.0.1
25libtool: install: (cd /root/fangjun/software/protobuf-3.20.1/lib && { ln -s -f libprotoc.so.31.0.1 libprotoc.so.31 || { rm -f libprotoc.so.31 && ln -s libprotoc.so.31.0.1 libprotoc.so.31; }; })
26libtool: install: (cd /root/fangjun/software/protobuf-3.20.1/lib && { ln -s -f libprotoc.so.31.0.1 libprotoc.so || { rm -f libprotoc.so && ln -s libprotoc.so.31.0.1 libprotoc.so; }; })
27libtool: install: /usr/bin/install -c .libs/libprotoc.lai /root/fangjun/software/protobuf-3.20.1/lib/libprotoc.la
28libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.a /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf-lite.a
29libtool: install: chmod 644 /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf-lite.a
30libtool: install: ranlib /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf-lite.a
31libtool: install: /usr/bin/install -c .libs/libprotobuf.a /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf.a
32libtool: install: chmod 644 /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf.a
33libtool: install: ranlib /root/fangjun/software/protobuf-3.20.1/lib/libprotobuf.a
34libtool: install: /usr/bin/install -c .libs/libprotoc.a /root/fangjun/software/protobuf-3.20.1/lib/libprotoc.a
35libtool: install: chmod 644 /root/fangjun/software/protobuf-3.20.1/lib/libprotoc.a
36libtool: install: ranlib /root/fangjun/software/protobuf-3.20.1/lib/libprotoc.a
37libtool: finish: PATH="/ceph-fj/fangjun/software/py38/bin:/ceph-fj/fangjun/software/jdk-17.0.3/bin:/ceph-fj/fangjun/software/cmake/bin:/ceph-fj/fangjun/software/texlive2021-20210325/bin/x86_64-linux:/ceph-sh1/fangjun/software/cuda-10.2.89/bin:/ceph-fj/fangjun/software/bin:/ceph-sh1/fangjun/software/bin:/ceph-sh1/fangjun/software/nvim-linux64/bin:/ceph-fj/fangjun/software/py38/bin:/ceph-fj/fangjun/software/cmake/bin:/ceph-fj/fangjun/software/texlive2021-20210325/bin/x86_64-linux:/ceph-sh1/fangjun/software/cuda-10.2.89/bin:/ceph-sh1/fangjun/software/nvim-linux64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/sbin" ldconfig -n /root/fangjun/software/protobuf-3.20.1/lib
38----------------------------------------------------------------------
39Libraries have been installed in:
40   /root/fangjun/software/protobuf-3.20.1/lib
41
42If you ever happen to want to link against installed libraries
43in a given directory, LIBDIR, you must either use libtool, and
44specify the full pathname of the library, or use the '-LLIBDIR'
45flag during linking and do at least one of the following:
46   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
47     during execution
48   - add LIBDIR to the 'LD_RUN_PATH' environment variable
49     during linking
50   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
51   - have your system administrator add LIBDIR to '/etc/ld.so.conf'
52
53See any operating system documentation about shared libraries for
54more information, such as the ld(1) and ld.so(8) manual pages.
55----------------------------------------------------------------------
56 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/bin'
57  /bin/bash ../libtool   --mode=install /usr/bin/install -c protoc '/root/fangjun/software/protobuf-3.20.1/bin'
58libtool: install: /usr/bin/install -c .libs/protoc /root/fangjun/software/protobuf-3.20.1/bin/protoc
59 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include'
60 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf'
61 /usr/bin/install -c -m 644  google/protobuf/any.proto google/protobuf/api.proto google/protobuf/descriptor.proto google/protobuf/duration.proto google/protobuf/empty.proto google/protobuf/field_mask.proto google/protobuf/source_context.proto google/protobuf/struct.proto google/protobuf/timestamp.proto google/protobuf/type.proto google/protobuf/wrappers.proto '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf'
62 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler'
63 /usr/bin/install -c -m 644  google/protobuf/compiler/plugin.proto '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler'
64 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include'
65 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf'
66 /usr/bin/install -c -m 644  google/protobuf/any.h google/protobuf/any.pb.h google/protobuf/api.pb.h google/protobuf/arena.h google/protobuf/arena_impl.h google/protobuf/arenastring.h google/protobuf/arenaz_sampler.h google/protobuf/descriptor.h google/protobuf/descriptor.pb.h google/protobuf/descriptor_database.h google/protobuf/duration.pb.h google/protobuf/dynamic_message.h google/protobuf/empty.pb.h google/protobuf/explicitly_constructed.h google/protobuf/extension_set.h google/protobuf/extension_set_inl.h google/protobuf/field_access_listener.h google/protobuf/field_mask.pb.h google/protobuf/generated_enum_reflection.h google/protobuf/generated_enum_util.h google/protobuf/generated_message_bases.h google/protobuf/generated_message_reflection.h google/protobuf/generated_message_tctable_decl.h google/protobuf/generated_message_tctable_impl.h google/protobuf/generated_message_util.h google/protobuf/has_bits.h google/protobuf/implicit_weak_message.h google/protobuf/inlined_string_field.h google/protobuf/map.h google/protobuf/map_entry.h google/protobuf/map_entry_lite.h google/protobuf/map_field.h google/protobuf/map_field_inl.h google/protobuf/map_field_lite.h google/protobuf/map_type_handler.h google/protobuf/message.h google/protobuf/message_lite.h google/protobuf/metadata.h google/protobuf/metadata_lite.h google/protobuf/parse_context.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf'
67 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/js'
68 /usr/bin/install -c -m 644  google/protobuf/compiler/js/js_generator.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/js'
69 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/cpp'
70 /usr/bin/install -c -m 644  google/protobuf/compiler/cpp/cpp_file.h google/protobuf/compiler/cpp/cpp_generator.h google/protobuf/compiler/cpp/cpp_helpers.h google/protobuf/compiler/cpp/cpp_names.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/cpp'
71 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/ruby'
72 /usr/bin/install -c -m 644  google/protobuf/compiler/ruby/ruby_generator.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/ruby'
73 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/python'
74 /usr/bin/install -c -m 644  google/protobuf/compiler/python/python_generator.h google/protobuf/compiler/python/python_pyi_generator.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/python'
75 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/util'
76 /usr/bin/install -c -m 644  google/protobuf/util/delimited_message_util.h google/protobuf/util/field_comparator.h google/protobuf/util/field_mask_util.h google/protobuf/util/json_util.h google/protobuf/util/message_differencer.h google/protobuf/util/time_util.h google/protobuf/util/type_resolver.h google/protobuf/util/type_resolver_util.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/util'
77 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/io'
78 /usr/bin/install -c -m 644  google/protobuf/io/coded_stream.h google/protobuf/io/gzip_stream.h google/protobuf/io/io_win32.h google/protobuf/io/printer.h google/protobuf/io/strtod.h google/protobuf/io/tokenizer.h google/protobuf/io/zero_copy_stream.h google/protobuf/io/zero_copy_stream_impl.h google/protobuf/io/zero_copy_stream_impl_lite.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/io'
79 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/csharp'
80 /usr/bin/install -c -m 644  google/protobuf/compiler/csharp/csharp_doc_comment.h google/protobuf/compiler/csharp/csharp_generator.h google/protobuf/compiler/csharp/csharp_names.h google/protobuf/compiler/csharp/csharp_options.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/csharp'
81 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/php'
82 /usr/bin/install -c -m 644  google/protobuf/compiler/php/php_generator.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/php'
83 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/stubs'
84 /usr/bin/install -c -m 644  google/protobuf/stubs/bytestream.h google/protobuf/stubs/callback.h google/protobuf/stubs/casts.h google/protobuf/stubs/common.h google/protobuf/stubs/hash.h google/protobuf/stubs/logging.h google/protobuf/stubs/macros.h google/protobuf/stubs/map_util.h google/protobuf/stubs/mutex.h google/protobuf/stubs/once.h google/protobuf/stubs/platform_macros.h google/protobuf/stubs/port.h google/protobuf/stubs/status.h google/protobuf/stubs/stl_util.h google/protobuf/stubs/stringpiece.h google/protobuf/stubs/strutil.h google/protobuf/stubs/template_util.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/stubs'
85 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/java'
86 /usr/bin/install -c -m 644  google/protobuf/compiler/java/java_generator.h google/protobuf/compiler/java/java_kotlin_generator.h google/protobuf/compiler/java/java_names.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/java'
87 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf'
88 /usr/bin/install -c -m 644  google/protobuf/port.h google/protobuf/port_def.inc google/protobuf/port_undef.inc google/protobuf/reflection.h google/protobuf/reflection_ops.h google/protobuf/repeated_field.h google/protobuf/repeated_ptr_field.h google/protobuf/service.h google/protobuf/source_context.pb.h google/protobuf/struct.pb.h google/protobuf/text_format.h google/protobuf/timestamp.pb.h google/protobuf/type.pb.h google/protobuf/unknown_field_set.h google/protobuf/wire_format.h google/protobuf/wire_format_lite.h google/protobuf/wrappers.pb.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf'
89 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/objectivec'
90 /usr/bin/install -c -m 644  google/protobuf/compiler/objectivec/objectivec_generator.h google/protobuf/compiler/objectivec/objectivec_helpers.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler/objectivec'
91 /bin/mkdir -p '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler'
92 /usr/bin/install -c -m 644  google/protobuf/compiler/code_generator.h google/protobuf/compiler/command_line_interface.h google/protobuf/compiler/importer.h google/protobuf/compiler/parser.h google/protobuf/compiler/plugin.h google/protobuf/compiler/plugin.pb.h '/root/fangjun/software/protobuf-3.20.1/include/google/protobuf/compiler'
93make[2]: Leaving directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1/src'
94make[1]: Leaving directory '/ceph-fj/fangjun/open-source-2/protocol-buffers/protobuf-3.20.1/src'
./code/tree-log.txt (Installed files)
  1.
  2|-- bin
  3|   `-- protoc
  4|-- include
  5|   `-- google
  6|       `-- protobuf
  7|           |-- any.h
  8|           |-- any.pb.h
  9|           |-- any.proto
 10|           |-- api.pb.h
 11|           |-- api.proto
 12|           |-- arena.h
 13|           |-- arena_impl.h
 14|           |-- arenastring.h
 15|           |-- arenaz_sampler.h
 16|           |-- compiler
 17|           |   |-- code_generator.h
 18|           |   |-- command_line_interface.h
 19|           |   |-- cpp
 20|           |   |   |-- cpp_file.h
 21|           |   |   |-- cpp_generator.h
 22|           |   |   |-- cpp_helpers.h
 23|           |   |   `-- cpp_names.h
 24|           |   |-- csharp
 25|           |   |   |-- csharp_doc_comment.h
 26|           |   |   |-- csharp_generator.h
 27|           |   |   |-- csharp_names.h
 28|           |   |   `-- csharp_options.h
 29|           |   |-- importer.h
 30|           |   |-- java
 31|           |   |   |-- java_generator.h
 32|           |   |   |-- java_kotlin_generator.h
 33|           |   |   `-- java_names.h
 34|           |   |-- js
 35|           |   |   `-- js_generator.h
 36|           |   |-- objectivec
 37|           |   |   |-- objectivec_generator.h
 38|           |   |   `-- objectivec_helpers.h
 39|           |   |-- parser.h
 40|           |   |-- php
 41|           |   |   `-- php_generator.h
 42|           |   |-- plugin.h
 43|           |   |-- plugin.pb.h
 44|           |   |-- plugin.proto
 45|           |   |-- python
 46|           |   |   |-- python_generator.h
 47|           |   |   `-- python_pyi_generator.h
 48|           |   `-- ruby
 49|           |       `-- ruby_generator.h
 50|           |-- descriptor.h
 51|           |-- descriptor.pb.h
 52|           |-- descriptor.proto
 53|           |-- descriptor_database.h
 54|           |-- duration.pb.h
 55|           |-- duration.proto
 56|           |-- dynamic_message.h
 57|           |-- empty.pb.h
 58|           |-- empty.proto
 59|           |-- explicitly_constructed.h
 60|           |-- extension_set.h
 61|           |-- extension_set_inl.h
 62|           |-- field_access_listener.h
 63|           |-- field_mask.pb.h
 64|           |-- field_mask.proto
 65|           |-- generated_enum_reflection.h
 66|           |-- generated_enum_util.h
 67|           |-- generated_message_bases.h
 68|           |-- generated_message_reflection.h
 69|           |-- generated_message_tctable_decl.h
 70|           |-- generated_message_tctable_impl.h
 71|           |-- generated_message_util.h
 72|           |-- has_bits.h
 73|           |-- implicit_weak_message.h
 74|           |-- inlined_string_field.h
 75|           |-- io
 76|           |   |-- coded_stream.h
 77|           |   |-- gzip_stream.h
 78|           |   |-- io_win32.h
 79|           |   |-- printer.h
 80|           |   |-- strtod.h
 81|           |   |-- tokenizer.h
 82|           |   |-- zero_copy_stream.h
 83|           |   |-- zero_copy_stream_impl.h
 84|           |   `-- zero_copy_stream_impl_lite.h
 85|           |-- map.h
 86|           |-- map_entry.h
 87|           |-- map_entry_lite.h
 88|           |-- map_field.h
 89|           |-- map_field_inl.h
 90|           |-- map_field_lite.h
 91|           |-- map_type_handler.h
 92|           |-- message.h
 93|           |-- message_lite.h
 94|           |-- metadata.h
 95|           |-- metadata_lite.h
 96|           |-- parse_context.h
 97|           |-- port.h
 98|           |-- port_def.inc
 99|           |-- port_undef.inc
100|           |-- reflection.h
101|           |-- reflection_ops.h
102|           |-- repeated_field.h
103|           |-- repeated_ptr_field.h
104|           |-- service.h
105|           |-- source_context.pb.h
106|           |-- source_context.proto
107|           |-- struct.pb.h
108|           |-- struct.proto
109|           |-- stubs
110|           |   |-- bytestream.h
111|           |   |-- callback.h
112|           |   |-- casts.h
113|           |   |-- common.h
114|           |   |-- hash.h
115|           |   |-- logging.h
116|           |   |-- macros.h
117|           |   |-- map_util.h
118|           |   |-- mutex.h
119|           |   |-- once.h
120|           |   |-- platform_macros.h
121|           |   |-- port.h
122|           |   |-- status.h
123|           |   |-- stl_util.h
124|           |   |-- stringpiece.h
125|           |   |-- strutil.h
126|           |   `-- template_util.h
127|           |-- text_format.h
128|           |-- timestamp.pb.h
129|           |-- timestamp.proto
130|           |-- type.pb.h
131|           |-- type.proto
132|           |-- unknown_field_set.h
133|           |-- util
134|           |   |-- delimited_message_util.h
135|           |   |-- field_comparator.h
136|           |   |-- field_mask_util.h
137|           |   |-- json_util.h
138|           |   |-- message_differencer.h
139|           |   |-- time_util.h
140|           |   |-- type_resolver.h
141|           |   `-- type_resolver_util.h
142|           |-- wire_format.h
143|           |-- wire_format_lite.h
144|           |-- wrappers.pb.h
145|           `-- wrappers.proto
146|-- lib
147|   |-- libprotobuf-lite.a
148|   |-- libprotobuf-lite.la
149|   |-- libprotobuf-lite.so -> libprotobuf-lite.so.31.0.1
150|   |-- libprotobuf-lite.so.31 -> libprotobuf-lite.so.31.0.1
151|   |-- libprotobuf-lite.so.31.0.1
152|   |-- libprotobuf.a
153|   |-- libprotobuf.la
154|   |-- libprotobuf.so -> libprotobuf.so.31.0.1
155|   |-- libprotobuf.so.31 -> libprotobuf.so.31.0.1
156|   |-- libprotobuf.so.31.0.1
157|   |-- libprotoc.a
158|   |-- libprotoc.la
159|   |-- libprotoc.so -> libprotoc.so.31.0.1
160|   |-- libprotoc.so.31 -> libprotoc.so.31.0.1
161|   |-- libprotoc.so.31.0.1
162|   `-- pkgconfig
163|       |-- protobuf-lite.pc
164|       `-- protobuf.pc
165`-- tree-log.txt
166
16718 directories, 146 files

Install with cmake

make protocol-buffers
cd protocol-buffers
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.1/protobuf-all-3.20.1.tar.gz
tar xvf protobuf-all-3.20.1.tar.gz
cd protobuf-all-3.20.1
mkdir my-build
cd my-build
cmake -Dprotobuf_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/ceph-fj/fangjun/software/protobuf-3.20.1-cmake/ ../cmake 2>&1 | tee cmake-configure-shared-lib.log
make -j10 2>&1 | tee make-shared.log
make install 2>&1 | tee make-shared-install.log

cd $HOME/software/protobuf-3.20.1-cmake
tree . > tree-cmake-log.txt