zoukankan      html  css  js  c++  java
  • windows批处理protoc生成C++代码

    1 首先需要生成protoc的可执行文件,具体可以参考  https://www.cnblogs.com/cnxkey/articles/10152646.html

    2 将单个protoc文件生成.h和.cc文件

    protoc -I=Proto文件路径 –cpp_out=指定输出.h和.cc的目录 Proto文件

    3 windows批处理。其实就是在2的基础上增加一个查找proto文件的循环

    可以先看看这个 https://www.bbsmax.com/A/n2d9X86Q5D/

    我们改一下就可以生成C++代码了

    @echo off 
     ::协议文件路径, 最后不要跟“”符号,可以使用相对路径
     set SOURCE_FOLDER=你的proto文件所在目录
     
     ::C++编译器路径
     set CPP_COMPILER_PATH=你的protoc.exe的具体路径,比如c:protoc.exe
     ::C++文件生成路径, 最后不要跟“”符号
     set CPP_TARGET_PATH=最后cc和h文件存放的目录
     
     
     ::删除之前创建的文件
     del %CPP_TARGET_PATH%*.* /f /s /q
     
     ::遍历所有文件
     for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%*.proto"') do (
        ::生成 C++ 代码
        echo %CS_COMPILER_PATH% -I=%SOURCE_FOLDER% --cpp_out=%CPP_TARGET_PATH% %%i
      %CS_COMPILER_PATH% -I=%SOURCE_FOLDER% --cpp_out=%CPP_TARGET_PATH% %%i
    )
    echo Generate Code Finished
    pause

      

    总结:

    1 装protoc可能会有些困难,我是采用cmake+vs的方式装的,先cmake生成vs的工程,然后vs编译。

    2 网上直接搜到的代码未必可以直接用,比如上面参考的博客里面的批处理命令,可能是因为protoc版本太老了,所以参数都不一样了,不过windows批处理的思想是一样的,改一改,试一试,或许就能满足自己的要求了。

    3 windows批处理使用之前记得确认好实际功能,避免因为不知道命令的作用而误删除文件,那样就得不偿失了。

    参考:

    https://blog.csdn.net/CAir2/article/details/78201572   --- 2的命令来源

    https://www.bbsmax.com/A/n2d9X86Q5D/  --- 3的批处理代码来源

    可以图形化看到的东西坚决不会用命令行ORZ

  • 相关阅读:
    普通变量和数组作为函数参数的区别
    2.1
    SQL NULL 值
    SQL ALTER TABLE 语句
    SQL CHECK 约束
    SQL LEFT JOIN 关键字
    SQL JOIN
    SQL Alias(别名)
    SQL 通配符
    从暴力中解脱,
  • 原文地址:https://www.cnblogs.com/IGNB/p/11644266.html
Copyright © 2011-2022 走看看