UE4表格工具三部曲之二【Protocol Buffer C 源码编译】

2 篇文章 0 订阅

1.下载源码protobuf-3.10.0

2.解压源码到工作目录

3.找到解压目录下的cmake/README.md

4.依次按照其步骤编译

 

README.md步骤

1.打开Native Tools Command Prompt(VS2013是VS2013 x64 本机工具命令提示,VS2017是VS 2017的 x64_x86 交叉工具命令提示符),VS2013和VS2017该工具的路径也不一样,注意区分

2.在Cmd命令下进入解压目录同级目录,比如第一步解压在C:\Path\to目录下,执行C:\Path\to>mkdir install,创建install目录,在编译过程中,这个目录并没什么用,暂时创建出来就可

3.假如命1中的工具不在环境变量,将其加入环境变量。配置git,因为后面如果没有提前下载源码的zip包,是在cmd下使用git下载

 C:\Path\to> git clone -b [release_tag] https://github.com/protocolbuffers/protobuf.git

4.进入解压目录, C:\Path\to>cd protobuf

5.进入cmake目录,C:\Path\to\protobuf>cd cmake。C:\Path\to\protobuf\cmake>

6.创建build目录,并进入build目录。  C:\Path\to\protobuf\cmake>mkdir build & cd build
     C:\Path\to\protobuf\cmake\build>

7.创建release目录。

     C:\Path\to\protobuf\cmake\build>mkdir release & cd release
     C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
     -DCMAKE_BUILD_TYPE=Release ^
     -DCMAKE_INSTALL_PREFIX=../../../../install ^
     ../..

8.创建debug目录

     C:\Path\to\protobuf\cmake\build>mkdir debug & cd debug
     C:\Path\to\protobuf\cmake\build\debug>cmake -G "NMake Makefiles" ^
     -DCMAKE_BUILD_TYPE=Debug ^
     -DCMAKE_INSTALL_PREFIX=../../../../install ^
     ../..

9.创建解决方案目录

     C:\Path\to\protobuf\cmake\build>mkdir solution & cd solution
     C:\Path\to\protobuf\cmake\build\solution>cmake -G "Visual Studio 14 2015 Win64" ^
     -DCMAKE_INSTALL_PREFIX=../../../../install ^
     ../..

10.编译。编译的话分两种,一种是通过nmake编译,一种是通过VS的sln编译,我们选择第9步生成的。

11.打开sln,protobuf.sln,如果已经下载了protoc.exe,在只需要编译libprotobuf工程,否则还得编译libprotoc工程。

12.遇到v140工具的问题,打开VS的安装器(VS installer,VS菜单栏->帮助->检查更新->打开Visual Studio安装程序,选在安装器界面的,更多->更改->单个组件,搜索框搜索v140,安装适用于桌面的VC++2015.3 v14.00(v140)工具集),继续生成libprotobuf,release。

13.生成incluede目录,执行extract_includes.bat

14.如果需要Zlib,则进行Zlib库安装,目前我仅进行到13,没有安装ZLib

15.将生成的生成的include和lib拷贝到UE4中,添加头文件包含目录和库包含目录,以及库的引用。

16.修改.Build.cs,添加lib的路径

public class ExcelPBC : ModuleRules
{
    private string ModulePath
    {
        get
        {
            return ModuleDirectory;
        }
    }

    private string ThirdPartyPath
    {
        get
        {
            return Path.GetFullPath(Path.Combine(ModulePath, "../ExcelPBC/ThirdParty/ProtoBuffer"));
        }
    }

	public ExcelPBC(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });
		
		PublicIncludePaths.Add(Path.Combine(ThirdPartyPath, "include"));
        PublicAdditionalLibraries.Add(Path.Combine(ThirdPartyPath,"lib", "libprotobuf.lib"));
	}
}

17.添加由protoc生成的.proto对应的.cc和.h文件,编译UE4,会报错,见注意事项3。

注意事项:

1.v140的安装

2.属性配置修改:如果UE使用protocbuff,则需要修改当前项目属性->配置属性->C/C++->代码生成,选择运行库,设置为多线程DLL(/MD),不然UE4会找不到lib

3.修改.cc,消除UE4产生的警告和报错

参考链接:http://www.v5xy.com/?p=925

 

UE4表格工具三部曲之一【环境配置】

UE4表格工具三部曲之三【ProtocolBuff序列化和反序列化】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、本课程是一个干货课程,主要讲解如何封装服务器底层,使用Tcp/ip长连接,IDE使用vs2019 c++开发以及使用c++11的一些标准,跨平台windows和linux,服务器性能高效,单服务器压力测试上万无压力,服务器框架是经历过上线产品的验证,框架简单明了,不熟悉底层封装的人,半个小时就能完全掌握服务器框架上手写业务逻辑。2、本课程是一个底层服务器框架教程,主要是教会学员在windows或linux下如何封装一个高效的,避免踩坑的商业级框架,服务器底层使用初始化即开辟内存的技术,使用内存池,服务器运行期间内存不会溢出,非常稳定,同时服务器使用自定义哈希hashContainer,在处理新的连接,新的数据,新的封包,以及解包,发包,粘包的过程,哈希容器性能非常高效,增、删、查、改永远不会随着连接人数的上升而降低性能,增、删、查、改的复杂度永远都是恒定的O(1)。3、服务器底层封装没有使用任何第三方网络库以及任何第三方插件,自由度非常的高,出了任何BUG,你都有办法去修改,查找问题也非常方便,在windows下使用iocp,linux下使用epoll.4、讲解c++纯客户端,主要用于服务器之间通信,也就是说你想搭建多层结构的服务器,服务器与服务器之间使用socket通信。还可以使用c++客户端做压力测试,开辟多线程连接服务器,教程提供了压力测试,学员可以自己做压力测试服务器性能。5、赠送ue4和unity3d通信底层框架以及多人交互demo,登录,注册,玩家离开,同步主要是教会学员服务器与客户端如何交互。6、赠送c++连接mysql数据库框架demo,登录,注册,玩家离开数据持久化.7、服务器教程使用自定义通信协议,同时也支持protobuf,选择权在开发者自己手里,想用什么协议都可以,自由度高。8、服务器教程使用手动敲代码逐句讲解的方式开展教学课程。非喜勿喷,谢谢大家。9、服务器教程提供码,大家可以在平台提供的地址下载或者联系我,服务器使用c++11部分标准,std::thread,条件变量,线程锁,智能指针等,需要学员具备一定c++知识,购买前请慎重考虑。
在 Android Studio 中编译 protobuf 文件的步骤如下: 1. 首先,在项目的 build.gradle 文件中添加以下依赖: ``` implementation 'com.google.protobuf:protobuf-java:x.x.x' ``` 其中,x.x.x 是版本号,可以根据自己的实际情况进行替换。 2. 在 app 目录下创建一个 proto 目录,用于存放 .proto 文件。 3. 在 build.gradle 文件中添加以下内容: ``` protobuf { protoc { artifact = 'com.google.protobuf:protoc:x.x.x' } plugins { javalite { artifact = 'com.google.protobuf:protoc-gen-javalite:x.x.x' } } generateProtoTasks { all().each { task -> task.builtins { java { option 'lite' } } task.plugins { javalite {} } } } } ``` 其中,x.x.x 是版本号,需要替换为实际的版本号。 4. 在 app 目录下的 build.gradle 文件中,添加以下内容: ``` sourceSets { main { java { srcDirs 'src/main/java', 'build/generated/source/proto/main/java' } } } protobuf { protoc { artifact = 'com.google.protobuf:protoc:x.x.x' } generateProtoTasks { all().each { task -> task.builtins { java { option 'lite' } } } generateProtoTasks { all().each { task -> task.plugins { javalite {} } } } } } ``` 其中,x.x.x 是版本号,需要替换为实际的版本号。 5. 在 Android Studio 中,点击菜单栏中的 Build -> Make Project,编译项目。编译成功后,会在 app/build/generated/source/proto/main/java 目录下生成对应的 .java 文件。 6. 最后,在需要使用 proto 文件的代码中,使用生成的 .java 文件即可。 以上就是在 Android Studio 中编译 protobuf 文件的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值