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的批处理代码来源
原文地址:https://www.cnblogs.com/IGNB/p/11644266.html
时间: 2024-11-08 21:30:03