首页 > 系统相关 >Windows系统编译protobuf

Windows系统编译protobuf

时间:2024-04-07 18:02:26浏览次数:24  
标签:protobuf Windows 模型 编译 ncnn -- 序列化

在编译ncnn前,需要编译好protobuf。这篇文章将记录protobuf的编译方法。

什么是protobuf

Protocol Buffers是一种轻量级、高效的数据交换格式,它可以用于结构化数据的序列化,适用于通信协议、数据存储等领域。

  1. 优点

    • 高效性:Protocol Buffers生成的数据序列化后体积小,速度快。
    • 跨语言支持:支持多种编程语言,可以在不同语言之间进行数据交换。
    • 可扩展性:支持向后兼容性和向前兼容性,可以轻松地更新数据结构。
  2. 使用方式

    • 定义消息类型:使用.proto文件定义数据结构和消息类型。
    • 生成代码:使用Protocol Buffers编译器将.proto文件编译生成对应语言的代码。
    • 序列化和反序列化:使用生成的代码将数据序列化为二进制格式或反序列化为对象。

protobuf与ncnn

protobuf在ncnn中通常用于模型的序列化和反序列化。在ncnn中,可以使用protobuf格式来保存和加载模型结构及权重参数,以便在不同平台或系统之间方便地共享和部署模型。

具体来说,ncnn使用protobuf格式来定义模型的网络结构(如层类型、连接方式等)和权重参数。通过将模型保存为protobuf格式,可以实现模型的跨平台和跨语言共享,同时保持模型结构的一致性。这种方式也有助于模型的版本控制和管理。

在 ncnn 中,可以使用类似以下的方法来加载和使用protobuf格式的模型,

#include "net.h"

ncnn::Net net;
net.load_param("model.param");
net.load_model("model.bin");

编译protobuf

首先去官网(https://github.com/protocolbuffers/protobuf/releases/tag/v21.12)下载压缩包,这里推荐的是21.12版本

随后,

mkdir build_vs2017
cd build_vs2017

配置构建项目所需文件,

cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake

构建项目并安装到指定目录,

cmake --build . --config Release -j 2
cmake --build . --config Release --target install

标签:protobuf,Windows,模型,编译,ncnn,--,序列化
From: https://blog.csdn.net/qq_38964360/article/details/137347725

相关文章

  • opencv4.9.0交叉编译教程
    opencv4.9.0交叉编译教程1.准备工作在linux系统中下载opencv源码;在linux系统中安装cmake-gui;linux系统具有嵌入式板卡对应的交叉编译工具链,且能够正常使用。2.配置opencv​​​​​​​​勾选opencl(如果你芯片支持),opengl(如果你芯片支持),openmp。​​​​使能zLI......
  • Nginx 1.25.4 编译安装
    Nginx1.25.4源码编译安装最新长期技术支持版本 nginx-1.25.4,官方下载源码包: https://nginx.org/download/nginx-1.25.4.tar.gz一键安装脚本不啰嗦,脚本简单快速编译安装#!/bin/bash#安装相关包yum-yinstallgccpcre-developenssl-develzlib-develmakewget#......
  • windows服务器间文件同步--Syncthing
    一、说明:Syncthing免费且开源,跨平台支持Windows、Mac、Linux、Android等主流平台,除了PC、手机以外,在部分路由器、树莓派等硬件上都能轻松运行,它将以网页版的形式呈现,并且Syncthing还提供了中文界面的支持。二、下载官网下载地址:https://syncthing.net/downloads/按照自......
  • windows的一个socket 客户端程序
    windows的一个socket客户端程序#include<iostream>#include<WinSock2.h>#include<WS2tcpip.h>#include<chrono>#include<thread>//链接库#pragmacomment(lib,"Ws2_32.lib")intmain(){//初始化WinsockWSADATAwsa......
  • windows 环境下启动多个tomcat
    在Windows环境下面测试tomcat集群时,由于在环境变量中配置了catalina_home,导致每次启动都会走默认的配置,无法启动多个tomcat 修改方法直接修改startup.bat文件,设置CATALINA_HOME默认值。设置成tomcat安装路径即可setCATALINA_HOME=D:\programs\tomcat-cluster\apache-tomcat-8......
  • FastNat外网访问 Windows 3389 远程桌面
    概述Windows系统自带3389端口的远程桌面,无需额外安装任何软件即可使用,广泛用于远程办公场景。当电脑处于内网时,从外网是无法直接访问的,可通过安装路由侠实现从外对内访问,本文介绍具体的实现步骤。一,内网电脑设置1,首先在被访问的电脑的开始菜单中找到【设置】,点击进去。 2......
  • Protobuf - Well-Known Types
     Any (message)Api (message)BoolValue (message)BytesValue (message)DoubleValue (message)Duration (message)Empty (message)Enum (message)EnumValue (message)Field (message)Field.Cardinality (enum)Field.Kind (enum)FieldMask (message)Fl......
  • centos7:编译升级 openssh:主要参考“https://github.com/boypt/openssh-rpms”
    参考“https://github.com/boypt/openssh-rpms”  “Releases·boypt/openssh-rpms(github.com)” 安装人家大牛的文档来操作即可。可选的,自行定制 version.env,可进行各种组合! BackportOpenSSHRPM/SRPMforoldCentOSAsimplescripttobuildlatestOpen......
  • ILSpy是一个开源的.NET反编译器
    在软件开发领域,反编译器是一种强大的工具,它允许开发者查看已编译代码的内部结构。对于.NET平台,ILSpy是一款备受欢迎的反编译器,它能够将已编译的.NET程序集(如DLL或EXE文件)转换回近似的C#或VB.NET源代码。这不仅有助于理解第三方库的工作原理,还能在调试、优化或学习他人代码时提供巨......
  • JetBrains CLion 2024.1 (macOS, Linux, Windows) 发布 - C 和 C++ 跨平台 IDE
    JetBrainsCLion2024.1(macOS,Linux,Windows)-C和C++跨平台IDE请访问原文链接:JetBrainsCLion2024.1(macOS,Linux,Windows)-C和C++跨平台IDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsCLion-C和C++跨平台IDE用于强大语言的......