UE4Protobuf: UE4中编译最新Protobuf 3.11.2的脚本 (gitee.com)
UE4Protobuf
UE4中编译最新Protobuf 3.11.2的脚本
编译环境
-
Windows下编译Win64及Android库
- Visual Studio
- Android NDK
- CMake 并将cmake.exe所在目录加入系统变量
PATH
中
-
Mac机编译IOS库
- XCode
- CMake
使用说明
-
下载Google Protobuf最新版(protobuf-cpp-x.x.x.zip)。
-
解压到
source
目录下 -
修改源代码
-
src/google/protobuf/compiler/cpp/cpp_file.cc
// 方法:FileGenerator::GenerateSourceIncludes format( "// Generated by the protocol buffer compiler. DO NOT EDIT! " "// source: $filename$ " + " " + "// Disable UE4 VS warnings " + "#ifdef _MSC_VER " + "# pragma warning(disable: 4946) " + "# pragma warning(disable: 4125) " + "# pragma warning(disable: 4647) " + "# pragma warning(disable: 4668) " + "# pragma warning(disable: 4800) " + "#endif " + " " "#include $1$ "
-
cmake/CMakeLists.txt
add_definitions(-DGOOGLE_PROTOBUF_CMAKE_BUILD) + add_definitions(-DGOOGLE_PROTOBUF_NO_RTTI=1)
-
-
编译
- 修改
BuildWindows.bat
中VC的路径为自己安装的路径 - 修改
BuildAndroid.bat
中NDK的路径 - Windows下运行
BuildWindows.bat
- Windows下运行
BuildAndroid.bat
- Mac下运行
BuildIOS.sh
- 修改
-
UE4集成
- 在项目
Source/ThirdParty
目录下建立文件夹Protobuf
- 将
include
,lib
,Protobuf.Build.cs
拷贝到新建的目录下 - 使用
bin
目录下生成protoc.exe
生成*.pb.cc
及*.pb.h
文件 - 由于最新的Protobuf已经使用c++11重写,所以不需要再引入
AllowWindowsPlatformTypes.h
等文件了,基本不需要改动
- 在项目