首先到官网下载Protobuf源码
比如下载protobuf-cpp-3.15.8.zpi,提取里面的src/google
,按下图文件目录放置。图中的Source
为UE4项目的Source目录。
分别新建ProtoBuf.cpp
、Protobuf.h
、Protobuf.Build.cs
,代码如下
Protobuf.h
#pragma once
#include "CoreMinimal.h"
ProtoBuf.cpp
#include "Protobuf.h"
#include "Modules/ModuleManager.h"
IMPLEMENT_GAME_MODULE(FDefaultGameModuleImpl, Protobuf);
Protobuf.Build.cs
public class Protobuf : ModuleRules
{
public Protobuf(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core" });
PrivateDependencyModuleNames.AddRange(new string[] { });
ShadowVariableWarningLevel = WarningLevel.Off;
bEnableUndefinedIdentifierWarnings = false;
bEnableExceptions = true;
PublicDefinitions.Add("_CRT_SECURE_NO_WARNINGS");
PublicIncludePaths.Add(ModuleDirectory);
}
}
然后就可以编译项目了。
接着就是根据proto文件生成代码,把proto文件和exe放置在该目录(仅为演示,一般不用把protoc.exe放进项目)
protoc.exe必须放置在跟google目录同层,然后在cmd里执行命令,生成.h
和.cc
文件
protoc.exe --cpp_out=. Geometry.proto