【发布时间】:2018-09-14 13:15:54
【问题描述】:
一段时间后,我想到在 Unity 旁边尝试虚幻引擎(看看如何编码,如何在 C++ 和 UE API 的帮助下解决问题)。一个未解决的问题是 Visual Studio 中的 IntelliSense,没有任何第三方工具,如 Visual Assist 或 Resharper C++(这是 UE4 唯一受支持的良好 IDE)。在标题部分添加新的#include 时,IntelliSense 会在第 10 行下划线UCLASS() 红色,因为this declaration has no storage class or type specifier。以这个头文件为例:
#pragma once
#include "CoreMinimal.h"
#include "Components/StaticMeshComponent.h" // Broken when adding this line
#include "GameFramework/Actor.h"
#include "RotatingActor.generated.h"
UCLASS()
class UE419DEMO_API ARotatingActor : public AActor
{
GENERATED_BODY() // ERROR: "this declaration has no storage class or type specifier"
public:
ARotatingActor();
protected:
virtual void BeginPlay() override;
public:
virtual void Tick(float DeltaTime) override;
UPROPERTY(EditAnywhere)
UStaticMeshComponent *StaticMeshComponent; // The include is needed for this line here, because without the header file, IntelliSense doesn't autocomplete methods which belong to this class.
};
尽管UCLASS() 有红色下划线.cpp 一侧有红色下划线,因为class "UObject" has no member "BeginPlay",该文件编译得非常好,在Visual Studio 的任何一侧都没有任何构建错误。这在某种程度上造成了干扰,因为这个错误不是真正的错误,而是一个错误,因为 Visual Studio 无法识别宏 UCLASS(),该宏以前位于第 9 行,现在位于第 10 行。
也就是说,我问我这种行为是否正常。我是否必须付费(Visual Assist)或继续重新打开 Visual Studio(这会破坏我的编码流程并占用时间)来解决该问题。有人有解决这个特定问题的方法吗?
【问题讨论】:
-
“存在构建错误”表示您的代码无法编译 - 这不是 IntelliSense 的错,第三方工具也无法修复它。阅读错误消息并修复这些错误,而不是责怪您的工具
-
不,该消息仍然意味着您的代码无法编译 - 这与 IntelliSense 无关。事实上,完整的消息会询问您是否要运行最后一次成功的构建。 Visual Studio 中有一个可用的错误列表,它将列出编译期间发生的所有错误
-
嗯,读到这里:stackoverflow.com/help/why-vote 我认为投反对票的答案看起来很愚蠢,实际上是投票机制的想法。毕竟“愚蠢”实际上与“有帮助”相反。这也适用于您实际上应该参考看起来很愚蠢的投票问题。
-
我不明白。当然,除了它的挑衅性。 “任何时候都没有给出答案的问题”是什么意思?
-
@alexanders916:人们投反对票,因为一半的问题是咆哮,而且问题描述得非常糟糕,以至于我们甚至很难理解你正在经历什么。你提到了智能感知,但也引用了构建错误,但又说没有构建错误。你说智能感知抛出是因为宏不在第 9 行,但不要说“抛出”是什么意思,或者描述为什么第 9 行是相关的。这种混淆意味着问题不清楚,这意味着它应该被否决。
标签: c++ visual-studio-2017 unreal-engine4