首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不安装Visual的情况下在C++中创建UE5项目?

如何在不安装Visual的情况下在C++中创建UE5项目?
EN

Stack Overflow用户
提问于 2022-10-28 18:36:50
回答 1查看 141关注 0票数 0

我想使用代码(或任何其他IDE)和gcc。我安装了g++:

代码语言:javascript
复制
g++ -v
Using built-in specs.
...
gcc version 10.3.0 (tdm64-1)

但是,在UE5中,当我尝试创建一个新的C++项目时,会显示一个错误:

代码语言:javascript
复制
No compiler was found. In order to use a C++ template, you must first install Visual Studio 2019

“必须”部分听起来并不严重: Visual似乎是8GB,我甚至不确定它是否是免费的。

是否有一种在不安装Visual的情况下在C++中使用UE5的方法?

注意:也是在一些评论中提出的,这里有一个关于安装和代码:https://docs.unrealengine.com/5.0/en-US/setting-up-visual-studio-code-for-unreal-engine/的指南。但是,该指南的问题是:“本指南假定您已安装了虚拟引擎,并使用它创建了一个C++项目”,但是您无法在没有Visual的情况下创建一个项目,因为create按钮已被禁用。

EN

回答 1

Stack Overflow用户

发布于 2022-11-01 10:19:51

虚拟引擎的C++项目可以手动创建,因为它是在文件系统中特定目录结构中的文本文件中独占定义的。

首先,您需要项目文件本身。它是一个具有.uproject扩展名的json文件(例如,我们称它为MyProject )。所需的内容是引擎版本的EngineAssociation字段(既可以从Epic Games发射器中插入,也可以从源中构建),以及Modules数组中的至少一个模块。下面是一个示例:

代码语言:javascript
复制
{
    "FileVersion": 3,
    "EngineAssociation": "4.27",
    "Category": "",
    "Description": "",
    "Modules": [
        {
            "Name": "MyProjectModule",
            "Type": "Runtime",
            "LoadingPhase": "Default",
            "AdditionalDependencies": [
                "CoreUObject",
                "UMG",
                "Engine"
            ]
        }
    ]
}

接下来,我们需要创建目标文件。在与Source目录相同的目录中创建一个uproject文件夹。在该文件夹中,需要两个文件:一个用于独立项目,一个用于In项目。它们被命名为(ProjectName).target.cs(ProjectName)Editor.target.cs (注:在Editor之前没有空格或下划线,即MyProject.target.csMyProjectEditor.target.cs)。

这些文件用于设置总体生成设置。内容几乎是相同的。在最简单的形式中,下面是.target.cs

代码语言:javascript
复制
using UnrealBuildTool;
using System.Collections.Generic;

public class MyProjectTarget : TargetRules
{
    public MyProjectTarget( TargetInfo Target) : base(Target)
    {
        Type = TargetType.Game;
        DefaultBuildSettings = BuildSettingsVersion.V2;
    }
}

Editor.target.cs

代码语言:javascript
复制
using UnrealBuildTool;
using System.Collections.Generic;

public class MyProjectEditorTarget : TargetRules
{
    public MyProjectEditorTarget( TargetInfo Target) : base(Target)
    {
        Type = TargetType.Editor;
        DefaultBuildSettings = BuildSettingsVersion.V2;
    }
}

最后,您需要定义在MyProjectModule中声明的uproject模块。Make和一个以Source文件夹中的模块命名的子文件夹(在本例中,是Source/MyProjectModule)。在这里,需要三个文件:一个定义如何构建这个模块的build.cs文件,一个ModuleName.hModuleName.cpp文件,用于“实现”该模块的非真实反射系统。

最简单的Build.cs

代码语言:javascript
复制
using UnrealBuildTool;


public class MyProjectModule : ModuleRules
{
    public MyProjectModule(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
            
        PublicDependencyModuleNames.AddRange(new string[] { 
            "Core", 
            "CoreUObject", 
            "Engine"
        });
    }
}

最简单模块.h

代码语言:javascript
复制
#pragma once

#include "CoreMinimal.h"

最简单模块.cpp

代码语言:javascript
复制
// Copyright Epic Games, Inc. All Rights Reserved.

#include "MyProjectModule.h"
#include "Modules/ModuleManager.h"

IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, MyProjectModule, "MyProjectModule" );

这应该是一个足够的基础项目,以遵循使用VS代码/其他IDE的官方指南的其余部分。这并没有回答您关于使用g++编译的部分,而是需要在Windows上使用MSVC或在Linux和Mac上使用Clang。我希望这不是什么大问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74239619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档