提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
c++14下们可以使用varaint第三方组件,现在需要去除varaint组件没使用std标准库里面的varaint,参考std::variant - cppreference.com。
将代码中的mpark::holds_alternative换成std::holds_alternative,
报错namespace "std" 没有成员 "holds_alternative" poioverlay
将代码中的mpark::get换成std::get,报错
没有与参数列表匹配的 重载函数 "std::get" 实例
在头文件中增加#include
解决办法:
改成c++17,暂时不报错了。
.lib 文件、.dll 文件和 .sln 文件都是与 Microsoft Visual Studio 开发工具相关的文件。
.lib 文件(静态库文件):
.lib 文件是静态库文件,包含一组对象文件的二进制代码和符号信息,可以被编译器链接到可执行文件中。当编译器编译程序时,它将 .a 文件(Linux)或 .lib 文件(Windows)包含进最终的可执行文件中。这些静态文件在编译时会被直接链接到最终的程序中,并与最终程序一起分发,因此,它们的大小比动态库要大,但与动态库相比,静态库的使用更加方便和灵活。一些常见的静态库文件包括:libc.lib、libm.lib 等。生成 .lib 文件:
在 Visual Studio 中,生成 .lib 文件的方法如下:
创建一个新的 Win32 库项目;
在设置中指定生成的库类型为静态库;
将需要编译为库的源文件添加到项目中;
编译项目,生成 .lib 文件。
.dll 文件(动态库文件):
.dll 文件是动态链接库文件,同样包含一组对象文件的二进制代码和符号信息,但它们不会被直接链接到最终可执行文件中,而是在程序运行时被动态地加载到内存中,并在需要时被执行。相较于静态库,它占用更小的内存空间,因为在运行时只需要加载一次,同时也使得程序更新更灵活,因为只需要替换 .dll 文件即可更新代码。一些常见的 .dll 文件包括:msvcrt.dll、kernel32.dll 等。生成 .dll 文件:
在 Visual Studio 中,生成 .dll 文件的方法如下:
创建新的 Win32 DLL 项目;
在设置中指定生成的库类型为动态链接库;
将需要编译为库的源文件添加到项目中;
编译项目,生成 .dll 文件。
.sln 文件(解决方案文件):
.sln 文件是 Visual Studio 解决方案文件,包含了多个项目,以及这些项目之间的关系和配置信息。一个解决方案可以包含多个项目和文件,这些项目和文件共同组成一个应用程序。在 Visual Studio 中打开 .sln 文件,将自动打开关联的工程文件,并将它们组合成已配置和连接的整体。生成 .sln 文件:
在 Visual Studio 中,一个解决方案可以包含多个项目,可以在创建一个新的解决方案时添加多个项目,或者将一个或多个项目添加到现有的解决方案中。可以在 Visual Studio 的“文件”菜单中选择“新建项目”来创建一个新的项目,之后可以在 Visual Studio 的“文件”菜单中选择“新建解决方案”或“添加现有项目”来创建或添加项目并生成 .sln 文件。
总之,.lib 文件用于静态库,.dll 文件用于动态库,.sln 文件则是 Visual Studio 的解决方案文件。在 Visual Studio 中使用不同的工具和方法,可以方便地生成和使用这些关联文件。
本来百度以为要用vs编译,然后打电话给新卓,他说可以用cmake,于是有了个解决方向。
进入下载网址:Download CMake
这个时候我突然想到,如果真的是这样编译出来的,那当时collada2gltf我怎么没有印象编译过啊,然后COLLADA2GLTF里面还有挺多文件,一看就不是我编译出来的。真是很奇怪,然后我就以为是vs会自动编译呢。然后找到lib库文件,把vs工程重新编译,并没有看到lib文件刷新日期。
全局搜索collada2gltf文件,最后发现他是在一个文件夹里,文件夹是由zip压缩包解压出来的,我就查找跟强哥的聊天记录。没找到,然后 想到会不是是云盘发过来的,查了下聊天记录,确实是云盘发过来的。所以我现在还是要编译一下第三方开源组件lib库。
安装好cmake后参考这个教程:使用CMake制作lib文件-百度经验
报错:Error inconfiguration process,preject files may be invalid
用这个办法解决:解决方案-CMake error: error in configuration process, project files may be invalid(Windows&VS可参考)
没有好,继续解决
CMake Error: The source directory "G:/updateLib/boost/boost-1.79.0/boost-1.79.0/libs" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
Boost C++ Libraries
boost库分linux和windows包,下载windows包
然后突然发现这个
在等下载好的过程中,突然看到这个帖子,里面下载下来的包里面就有CMakeList.txt文件
C++开源库libharu编译使用--PDF开源库 - 哔哩哔哩
最后按照别人的帖子验证了cmake安装成功了,验证过程参考的是bilibili的帖子。2.2的报错是因为安装包里面就是没有CMakelist.txt文件。
哎,搞了大半天,问了兵朋,给我推了这个帖子,boost入门指南(windows)_boost b2怎么用-CSDN博客
这个帖子没用cmake编译,结合boost源码包, 没有CMakeList.txt文件,用的是bootstrap.bat
打开终端
执行bootstrap
生成b2.exe文件
执行.\b2
显示如下信息,编译成功
文件在红框路径中
成功!
这个也是验证cmake是否安装成功
百度报错:Could NOT find Python (missing: Python_NumPy_INCLUDE_DIRS NumPy
vcpkg doesn't provide python numpy component · Issue #27996 · microsoft/vcpkg · GitHub
帖子里是这样,查看自己的pip3 list,
感觉是缺少numpy,安装numpy,pip install numpy
https://download.ihsdus.cn/down/2022down/7/14/numpy.rar?timestamp=654b7790&auth_key=8754bddea281abc90e53121461c9e46c
上面这个链接下载numpy.zip压缩包,解压进入setup.py路径,
安装成功
再次执行cmake,这时候报错
感觉好像没啥用啊。。。 = =
所以看来还是要百度一下gdal编译lib库文件
Win11下 基于VS2022编译GDAL库_gdal依赖库_GIS子枫的博客-CSDN博客
这个帖子好像说的比较明白啊
五、freetype开源库
GitHub - ubawurinna/freetype-windows-binaries at v2.13.2
这个开源库就把lib库文件编译好了,这多爽啊
使用时protobuf3.21.9版本的源码进行编译,https://open.codehub.huawei.com/OpenSourceCenter/protocolbuffers/protobuf/files?ref=v3.21.9
在服务器解压,发现有antogen.sh 文件,
按照下面下面的顺序执行
./autogen.sh
//多出一个configure文件
./configure
make
实际截图如下:
root@0002:~/data# cd protobuf
root@0002:~/data/protobuf# ll
total 624
drwxr-xr-x 24 root root 4096 Nov 10 14:10 ./
drwxr-xr-x 17 root root 4096 Nov 10 14:10 ../
-rw-r--r-- 1 root root 1449 Nov 10 14:10 appveyor.bat
-rw-r--r-- 1 root root 1166 Nov 10 14:10 appveyor.yml
-rwxr-xr-x 1 root root 1210 Nov 10 14:10 autogen.sh*
-rw-r--r-- 1 root root 2100 Nov 10 14:10 WORKSPACE
......
......
root@0002:~/data/protobuf# ./autogen.sh
+ test -d third_party/googletest
+ mkdir -p third_party/googletest/m4
+ autoreconf -f -i -Wall,no-obsolete
libtoolize: putting auxiliary files in '.'.
......
......
+ rm -rf autom4te.cache config.h.in~
+ exit 0
root@0002:~/data/protobuf# ll
total 1984
drwxr-xr-x 24 root root 4096 Nov 10 14:10 ./
drwxr-xr-x 17 root root 4096 Nov 10 14:10 ../
-rw-r--r-- 1 root root 46198 Nov 10 14:10 aclocal.m4
-rw-r--r-- 1 root root 3846 Nov 10 14:10 config.h.in
-rwxr-xr-x 1 root root 36144 Nov 10 14:10 config.sub*
-rwxr-xr-x 1 root root 727999 Nov 10 14:10 configure*
-rw-r--r-- 1 root root 8083 Nov 10 14:10 configure.ac
......
-rw-r--r-- 1 root root 2100 Nov 10 14:10 WORKSPACE
root@0002:~/data/protobuf# ./configure
checking whether to enable maintainer-specific portions of Makefiles... yes
checking build system type... x86_64-pc-linux-gnu
......
checking the location of hash_map...
checking whether -llog is needed... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: executing libtool commands
=== configuring in third_party/googletest (/root/data/protobuf/third_party/googletest)
configure: WARNING: no configuration information is in third_party/googletest
root@0002:~/data/protobuf# make
make all-recursive
make[1]: Entering directory '/root/data/protobuf'
Making all in .
make[2]: Entering directory '/root/data/protobuf'
make[2]: Leaving directory '/root/data/protobuf'
Making all in src
make[2]: Entering directory '/root/data/protobuf/src'
CXX google/protobuf/any_lite.lo
CXX google/protobuf/arena.lo
CXX google/protobuf/arenastring.lo
CXX google/protobuf/arenaz_sampler.lo
CXX google/protobuf/extension_set.lo
make install显示log
root@0002:~/data/protobuf# make install
Making install in .
make[1]: Entering directory '/root/data/protobuf'
make[2]: Entering directory '/root/data/protobuf'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/usr/local/lib/pkgconfig'
/usr/bin/install -c -m 644 protobuf.pc protobuf-lite.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory '/root/data/protobuf'
make[1]: Leaving directory '/root/data/protobuf'
Making install in src
make[1]: Entering directory '/root/data/protobuf/src'
make[2]: Entering directory '/root/data/protobuf/src'
/bin/mkdir -p '/usr/local/lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libprotobuf-lite.la libprotobuf.la libprotoc.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.so.32.0.9 /usr/local/lib/libprotobuf-lite.so.32.0.9
libtool: install: (cd /usr/local/lib && { ln -s -f libprotobuf-lite.so.32.0.9 libprotobuf-lite.so.32 || { rm -f libprotobuf-lite.so.32 && ln -s libprotobuf-lite.so.32.0.9 libprotobuf-lite.so.32; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libprotobuf-lite.so.32.0.9 libprotobuf-lite.so || { rm -f libprotobuf-lite.so && ln -s libprotobuf-lite.so.32.0.9 libprotobuf-lite.so; }; })
libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.lai /usr/local/lib/libprotobuf-lite.la
libtool: install: /usr/bin/install -c .libs/libprotobuf.so.32.0.9 /usr/local/lib/libprotobuf.so.32.0.9
libtool: install: (cd /usr/local/lib && { ln -s -f libprotobuf.so.32.0.9 libprotobuf.so.32 || { rm -f libprotobuf.so.32 && ln -s libprotobuf.so.32.0.9 libprotobuf.so.32; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libprotobuf.so.32.0.9 libprotobuf.so || { rm -f libprotobuf.so && ln -s libprotobuf.so.32.0.9 libprotobuf.so; }; })
libtool: install: /usr/bin/install -c .libs/libprotobuf.lai /usr/local/lib/libprotobuf.la
libtool: warning: relinking 'libprotoc.la'
libtool: install: (cd /root/data/protobuf/src; /bin/bash "/root/data/protobuf/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 32:9:0 -export-dynamic -no-undefined -Wl,--version-script=./libprotoc.map -o libprotoc.la -rpath /usr/local/lib google/protobuf/compiler/code_generator.lo google/protobuf/compiler/command_line_interface.lo google/protobuf/compiler/cpp/enum.lo google/protobuf/compiler/cpp/enum_field.lo google/protobuf/compiler/cpp/extension.lo google/protobuf/compiler/cpp/field.lo google/protobuf/compiler/cpp/file.lo google/protobuf/compiler/cpp/generator.lo google/protobuf/compiler/cpp/helpers.lo google/protobuf/compiler/cpp/map_field.lo google/protobuf/compiler/cpp/message.lo google/protobuf/compiler/cpp/message_field.lo google/protobuf/compiler/cpp/padding_optimizer.lo google/protobuf/compiler/cpp/parse_function_generator.lo google/protobuf/compiler/cpp/primitive_field.lo google/protobuf/compiler/cpp/service.lo google/protobuf/compiler/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/context.lo google/protobuf/compiler/java/doc_comment.lo google/protobuf/compiler/java/enum.lo google/protobuf/compiler/java/enum_field.lo google/protobuf/compiler/java/enum_field_lite.lo google/protobuf/compiler/java/enum_lite.lo google/protobuf/compiler/java/extension.lo google/protobuf/compiler/java/extension_lite.lo google/protobuf/compiler/java/field.lo google/protobuf/compiler/java/file.lo google/protobuf/compiler/java/generator.lo google/protobuf/compiler/java/generator_factory.lo google/protobuf/compiler/java/helpers.lo google/protobuf/compiler/java/kotlin_generator.lo google/protobuf/compiler/java/map_field.lo google/protobuf/compiler/java/map_field_lite.lo google/protobuf/compiler/java/message.lo google/protobuf/compiler/java/message_builder.lo google/protobuf/compiler/java/message_builder_lite.lo google/protobuf/compiler/java/message_field.lo google/protobuf/compiler/java/message_field_lite.lo google/protobuf/compiler/java/message_lite.lo google/protobuf/compiler/java/name_resolver.lo google/protobuf/compiler/java/primitive_field.lo google/protobuf/compiler/java/primitive_field_lite.lo google/protobuf/compiler/java/service.lo google/protobuf/compiler/java/shared_code_generator.lo google/protobuf/compiler/java/string_field.lo google/protobuf/compiler/java/string_field_lite.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/generator.lo google/protobuf/compiler/python/helpers.lo google/protobuf/compiler/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 )
libtool: install: /usr/bin/install -c .libs/libprotoc.so.32.0.9T /usr/local/lib/libprotoc.so.32.0.9
libtool: install: (cd /usr/local/lib && { ln -s -f libprotoc.so.32.0.9 libprotoc.so.32 || { rm -f libprotoc.so.32 && ln -s libprotoc.so.32.0.9 libprotoc.so.32; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libprotoc.so.32.0.9 libprotoc.so || { rm -f libprotoc.so && ln -s libprotoc.so.32.0.9 libprotoc.so; }; })
libtool: install: /usr/bin/install -c .libs/libprotoc.lai /usr/local/lib/libprotoc.la
libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.a /usr/local/lib/libprotobuf-lite.a
libtool: install: chmod 644 /usr/local/lib/libprotobuf-lite.a
libtool: install: ranlib /usr/local/lib/libprotobuf-lite.a
libtool: install: /usr/bin/install -c .libs/libprotobuf.a /usr/local/lib/libprotobuf.a
libtool: install: chmod 644 /usr/local/lib/libprotobuf.a
libtool: install: ranlib /usr/local/lib/libprotobuf.a
libtool: install: /usr/bin/install -c .libs/libprotoc.a /usr/local/lib/libprotoc.a
libtool: install: chmod 644 /usr/local/lib/libprotoc.a
libtool: install: ranlib /usr/local/lib/libprotoc.a
libtool: finish: PATH="/usr/local/gcc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p '/usr/local/bin'
/bin/bash ../libtool --mode=install /usr/bin/install -c protoc '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/protoc /usr/local/bin/protoc
/bin/mkdir -p '/usr/local/include'
/bin/mkdir -p '/usr/local/include/google/protobuf'
/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 '/usr/local/include/google/protobuf'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler'
/usr/bin/install -c -m 644 google/protobuf/compiler/plugin.proto '/usr/local/include/google/protobuf/compiler'
/bin/mkdir -p '/usr/local/include'
/bin/mkdir -p '/usr/local/include/google/protobuf'
/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/endian.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 '/usr/local/include/google/protobuf'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/java'
/usr/bin/install -c -m 644 google/protobuf/compiler/java/generator.h google/protobuf/compiler/java/java_generator.h google/protobuf/compiler/java/kotlin_generator.h google/protobuf/compiler/java/names.h '/usr/local/include/google/protobuf/compiler/java'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/cpp'
/usr/bin/install -c -m 644 google/protobuf/compiler/cpp/cpp_generator.h google/protobuf/compiler/cpp/file.h google/protobuf/compiler/cpp/generator.h google/protobuf/compiler/cpp/helpers.h google/protobuf/compiler/cpp/names.h '/usr/local/include/google/protobuf/compiler/cpp'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/python'
/usr/bin/install -c -m 644 google/protobuf/compiler/python/generator.h google/protobuf/compiler/python/pyi_generator.h google/protobuf/compiler/python/python_generator.h '/usr/local/include/google/protobuf/compiler/python'
/bin/mkdir -p '/usr/local/include/google/protobuf'
/usr/bin/install -c -m 644 google/protobuf/parse_context.h google/protobuf/port.h google/protobuf/port_def.inc google/protobuf/port_undef.inc google/protobuf/reflection.h google/protobuf/reflection_internal.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 '/usr/local/include/google/protobuf'
/bin/mkdir -p '/usr/local/include/google/protobuf/stubs'
/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 '/usr/local/include/google/protobuf/stubs'
/bin/mkdir -p '/usr/local/include/google/protobuf/util'
/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 '/usr/local/include/google/protobuf/util'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/php'
/usr/bin/install -c -m 644 google/protobuf/compiler/php/php_generator.h '/usr/local/include/google/protobuf/compiler/php'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler'
/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 '/usr/local/include/google/protobuf/compiler'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/ruby'
/usr/bin/install -c -m 644 google/protobuf/compiler/ruby/ruby_generator.h '/usr/local/include/google/protobuf/compiler/ruby'
/bin/mkdir -p '/usr/local/include/google/protobuf/io'
/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 '/usr/local/include/google/protobuf/io'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/csharp'
/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 '/usr/local/include/google/protobuf/compiler/csharp'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/objectivec'
/usr/bin/install -c -m 644 google/protobuf/compiler/objectivec/objectivec_generator.h google/protobuf/compiler/objectivec/objectivec_helpers.h '/usr/local/include/google/protobuf/compiler/objectivec'
make[2]: Leaving directory '/root/data/protobuf/src'
make[1]: Leaving directory '/root/data/protobuf/src'
编译结束。
关于./configure,别人的帖子是这样介绍的
#第一步执行autogen.sh,
但如果下载的是具体某一门语言,则不需要执行这一步 ./autogen.sh
#第二步执行configure,
有两种执行方式,任选其一即可,如下:
#1.protobuf默认安装在 /usr/local 目录,lib、bin都是分散的 ./configure
#2.修改安装目录,同一安装在 /usr/local/protobuf 下 ./configure --prefix=/usr/local/protobuf
查看是否安装成功,protoc --vision
以上就是安装的过程
下面是创建.pp.h和.pp.c文件,至于这两个文件是什么,其实我也不清楚,还涉及到一个proto文件的编写,也不是我写的,目前我的任务是把.pp.h和.pp.c文件编出来。
进入protobuf/src文件中,有一个protoc文件,创建TEST文件。
执行指令
root@0002:~/data/protobuf/src# protoc --proto_path=../TEST --cpp_out=../TEST/ ../TEST/TrafficRenderData.proto
//protoc执行器
//--proto_path proto文件路径
// --cpp_out 输出文件
//最后的一个参数指出proto文件的路径
执行指令后查看./TETS路径,
成功!
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。