码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Windows系统CMake+VS编译protobuf


    目录

    • 一些名词
    • CMake构建VS工程
      • 下载protobuf源码
      • 下载CMake
      • 编译
      • QT中使用
    • 方案二失败:CMake+QT自带的Mingw编译
    • 参考链接

    一些名词

    lib
    dll

    lib库实际上分为两种,一种是静态链接lib库或者叫做静态lib库,另一种叫做动态链接库dll库的lib导入库或称为lib导入库。

    x86
    x64

    x86 一般指 32 位的架构,x64指64位架构。

    make
    cmake
    qmake

    make工具,通过调用makefile文件中用户指定的命令来进行编译和链接。
    cmake工具,cmake就可以更加简单的生成makefile文件给make。
    qmake工具是Qt公司制造出来,用来生成Qt 专用makefile文件。

    CMake构建VS工程

    下载protobuf源码

    https://github.com/protocolbuffers/protobuf
    https://github.com/protocolbuffers/protobuf/releases
    下载了protobuf-csharp-3.10.0.tar.gz
    在这里插入图片描述
    在这里插入图片描述

    解压

    下载CMake

    本文选择最新版本的 3.28.0-rc4
    打开CMake GUI
    选择Browse Source为protobuf-3.10.0/cmake文件夹。
    任意位置新建一个build文件夹,Browse Build选择构建输出的文件夹。

    在这里插入图片描述

    在这里插入图片描述

    CMake界面运行configure

    需要先设置使用的project
    在这里插入图片描述
    我选择了x64,根据自己的项目需求,选择x64 Win32 ARM之一

    protobuf_BUILD_SHARED_LIBS:需选中该选项,则可编译动态链接库
    protobuf_WITH_ZLIB:取消选中该选项
    中间出错,取消选中ZLIB后正常。

    CMake界面运行generate
    img
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
    这是一个Warning,由于文件中没有限制CMake版本限制,不管也可以运行。

    在这里插入图片描述
    运行后,build中出现了工程文件

    编译

    打开protobuf.sln文件
    上方选择x64 Release
    在这里插入图片描述

    在这里插入图片描述
    右键,重新生成解决方案
    等待时间

    在Release文件夹生成了
    在这里插入图片描述
    也可以生成x64 Debug的
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    QT中使用

    Release版本在QT使用方法
    在这里插入图片描述
    在这里插入图片描述
    pro文件中加入这些
    项目运行环境为 64bit Release

    将dll文件拷贝至项目路径的Release文件夹下,可以正常运行。
    代码可参考
    史上最详细:Qt–编译配置Protobuf(windows10)

    方案二失败:CMake+QT自带的Mingw编译

    CMake config选择mingw makefile

    参考链接

    方案一
    史上最详细:Qt–编译配置Protobuf(windows10)

    windows下CMake编译Protobuf

    在 VS2019 中编译/使用 Protobuf
    (取消选中zlib很重要。生成没有参考教程,而是选择资源管理器生成)

    方案二:失败
    Windows下Qt+minGW+CMake+opencv配置–方法总结、文件分享与排错分享
    使用MinGW
    QT中如何使用protobuf,配图详解
    MinGW
    cmake配置Qt的protobuf环境时出现Error in configuration process, project files may be invalid解决办法

    MinGW-w64 C/C++编译器下载和安装
    (未参考,直接使用QT带的)

  • 相关阅读:
    在线手写汉字
    Python:NMS简单实现
    使用Flask-Restful后handle_error干扰无法正常捕获全局异常的解决
    【Linux】JREE项目部署与发布
    【动画笔记】数据结构-AVL树的插入操作
    一道面试题:介绍一下 Fragment 间的通信方式?
    一百八十四、大数据离线数仓完整流程——步骤三、在Hive中建基础库维度表并加载MySQL中的维度表数据
    MySQL:快照读和当前读
    python模拟表格任意输入位置
    行业洞察 | 机器翻译何时能够达到可言传,可意会的境界?
  • 原文地址:https://blog.csdn.net/baidu_39630688/article/details/134376761
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号