美文网首页收藏
编译protobuf

编译protobuf

作者: 晓函 | 来源:发表于2024-05-21 10:03 被阅读0次

    下载

    下载protobuf和cmake到目录,路径不能包含中文
    protobuf

    vs2015用protobuf-3.5.1
    vs2022用protobuf-3.11.2以上,我用3.17.2

    3.17 https://github.com/protocolbuffers/protobuf/releases/tag/v3.17.2

    3.5.1: https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.zip

    cmake: https://cmake.org 我用的是 https://cmake.org/files/v3.11/cmake-3.11.0-rc2-win64-x64.msi

    编译

    1、用camke生成vs2022的项目文件


    image.png

    打开vs2022的x64命令行(我这是生成64位的文件,如果需要生成32位的,打开对应32位命令行即可) ,因为里面编译参数里有一个CL链接器的数据-CMAKE_C_COMPILER,直接用命令行需要手动传入,用vs的命令行则自带这些环境变量。

    image.png

    使用 VS2022开发人员命令提示 进入 protobuf 的 cmake 目录

    cd D:\Develop\protobuf\protobuf-3.17.2\cmake
    
    mkdir build & cd build  
    mkdir release & cd release
    cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../../install ../..
    
    image.png

    2、接着用vs下面的nmake继续编译项目文件为lib和exe

    nmake
    
    nmake install
    
    image.png image.png

    ps:如果要编译debug版本,和上面一样,在build下面建立debug目录

    mkdir debug & cd debug
    
    cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../../../install ../..
    
    nmake
    
    nmake install
    

    编译完成后的文件


    image.png

    使用

    nmake install生成后的文件


    image.png

    包含proto.exe,include文件,libprotobuf.lib,libprotobuf-lite.lib,libprotoc.lib

    接下来我们要用相同版本的proto.exe把user.proto数据输出为c++文件,
    把user.prot放到同目录

    protoc.exe --cpp_out=.  user.proto  
    
    image.png

    如果user.proto是在其他文件夹,咱们可以创建一个bat来快速生成

    echo "以下命令,会编译.proto,生成c++的文件"
    D:\Projects\VC\protobuf\install\bin\protoc.exe --cpp_out=.  user.proto  
    pause
    

    把生成的数据结构文件
    user.pb.cc,user.pb.h,还有proto的include和lib文件复制到你的项目中就可以了。

    image.png

    在项目配置中把proto加入包含目录


    image.png

    代码

    #include "user.pb.cc"
    
    test(){
        protoUser::User user;
        user.set_name("jack");
        printf("user:%s",user.name().c_str());
    
    }
    

    相关文章

      网友评论

        本文标题:编译protobuf

        本文链接:https://www.haomeiwen.com/subject/epxafjtx.html