将UE4代码编译成32位的编辑器

本文详细介绍了如何解决UE4在32位Windows平台上的编译问题,包括处理C2917编译错误的方法以及如何通过修改第三方库配置来解决链接错误。

UE4的编辑器在windows平台是不支持32位的,UE4编辑器只支持64位,但是将游戏打包成32位,是没有问题的。


如果非要编译成32位编辑器:

直接选择Developer_Editor  Win32编译之后会产生以下编译错误:

C2917,"parameter”: 具有 __declspec(align('8')) 的形参将不被对齐


以下是MSDN的解释:

错误消息
“parameter”: 具有 __declspec(align('#')) 的形参将不被对齐

函数参数中不允许使用 align__declspec 修饰符。

下面的示例生成 C2719:

// C2719.cpp
void func(int __declspec(align(32)) i);   // C2719
// try the following line instead
// void func(int i);

事实上,MS编译器目前还不支持函数参数对齐。

而UE4的FVector4类使用了对齐:

MS_ALIGN(16) class FVector4

在使用FVector4作为参数的函数中我们更改参数为引用形式:

static FVector4 AttemptToSnapLocationToOriginPlane( const FViewportCursorLocation& Cursor,FVector4 Location )    //C2719

更改为:

static FVector4 AttemptToSnapLocationToOriginPlane( const FViewportCursorLocation& Cursor,const FVector4& Location )   //ok


基本上按照这个模式 可以处理所有C2719错误。

下面处理链接错误:一般错误都为缺少32位的第三方库文件。可以在ThirdParty内修改对应的build.cs文件,添加对Win32平台的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值