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的批處理代碼來源