我想使用代码(或任何其他IDE)和gcc。我安装了g++:
g++ -v
Using built-in specs.
...
gcc version 10.3.0 (tdm64-1)但是,在UE5中,当我尝试创建一个新的C++项目时,会显示一个错误:
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按钮已被禁用。
发布于 2022-11-01 10:19:51
虚拟引擎的C++项目可以手动创建,因为它是在文件系统中特定目录结构中的文本文件中独占定义的。
首先,您需要项目文件本身。它是一个具有.uproject扩展名的json文件(例如,我们称它为MyProject )。所需的内容是引擎版本的EngineAssociation字段(既可以从Epic Games发射器中插入,也可以从源中构建),以及Modules数组中的至少一个模块。下面是一个示例:
{
"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.cs和MyProjectEditor.target.cs)。
这些文件用于设置总体生成设置。内容几乎是相同的。在最简单的形式中,下面是.target.cs
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
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.h和ModuleName.cpp文件,用于“实现”该模块的非真实反射系统。
最简单的Build.cs
using UnrealBuildTool;
public class MyProjectModule : ModuleRules
{
public MyProjectModule(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine"
});
}
}最简单模块.h
#pragma once
#include "CoreMinimal.h"最简单模块.cpp
// 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。我希望这不是什么大问题。
https://stackoverflow.com/questions/74239619
复制相似问题