using USTRUCT with my struct breaks it

I have a very simple struct:

TileData.h:

#pragma once

struct FTileData
{
	uint32 TestInt;

	FTileData();
};

TileData.cpp

#include "ProjectBeryl.h"
#include "TileData.h"

FTileData::FTileData()
{
}

and like it is above it compiles fine but if I add USTRUCT() to my header like this:

#pragma once

USTRUCT()
struct FTileData
{
	GENERATED_USTRUCT_BODY()

	UPROPERTY()
	uint32 TestInt;

	FTileData();
};

It doesn’t compile anymore and gives the following 4 errors, which I can’t really decipher:

Error	1	error code: 2	D:\Projects\Unreal Engine\ProjectBeryl\Intermediate\ProjectFiles\Error	ProjectBeryl

Error	2	error MSB3073: The command ""D:\Software\Unreal Engine\4.5\Engine\Build\BatchFiles\Rebuild.bat" ProjectBerylEditor Win64 Development "D:\Projects\Unreal Engine\ProjectBeryl\ProjectBeryl.uproject" -rocket" exited with code 2.	C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets	43	5	ProjectBeryl

3	IntelliSense: identifier "UMorphTarget_USTRUCT_BODY_LINE_6" is undefined	d:\Projects\Unreal Engine\ProjectBeryl\Source\ProjectBeryl\TileData.h	6	2	ProjectBeryl

4	IntelliSense: expected a ';'	d:\Projects\Unreal Engine\ProjectBeryl\Source\ProjectBeryl\TileData.h	9	9	ProjectBeryl

I’m rather new to UE4 and I’m sure this is something simple and obvious, but I can’t figure out what am I missing?

You must include generated header file in your struct header if you use reflection system:

#include "TileData.generated.h"

Thanks. This led me to find some material which made the reflection system more clear for me. Just dropping this link here in case someone else feels a bit lost: Unreal Property System (Reflection) - Unreal Engine