Guide to use QtCreator for Unreal Engine 4!

Greeting Community !

I want to share with you how to use QtCreator with yours Unreal Engine 4 projects !

First, you may ask : Why just keeping VS Express 2013 ?

Here is some point :

  • QtCreator is realy fast
  • QtCreator intellisense works 1000% better than Visual C++
  • QtCreator have a lot of refactoring options
  • QtCreator have a lot of usefull shortcut like F4 to switch header source, F2 to go to definition (instantly) … etc

At the end of the guide you will be able to :

  • Use QtCreator with full intellisense support
  • Build with QtCreator your Unreal Engine 4 Project
  • Run with QtCreator your Unreal Engine 4 Project

So this guide assume that you have installed Qt with QtCreator like with this link :
http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-opensource-windows-x86-mingw482_opengl-5.3.0.exe

Then to make it work we have to create our own .pro file wich is the project extension for QtCreator.

We gonna call our project YourProject as an example

1./ Create a file YourProject.pro in your root project directory (next to your uproject file) and copy this into :



	TEMPLATE = app
	CONFIG += console
	CONFIG -= app_bundle
	CONFIG -= qt

	# Declare and assign specific variable, you may change this path to work (do not add \ at the end of path !)
	UNREAL_PATH = C:\Program Files\Unreal Engine
	VISUAL_PATH = C:\Program Files (x86)\Microsoft Visual Studio 12.0

	# Will define all unreal defines
	include(defines.pri)

	# Project source path (you may complete this)
	HEADERS += Source\YourProject\*.h
	SOURCES += Source\YourProject\*.cpp

	# Project include path (you also may complete this)
	INCLUDEPATH += Source\YourProject

	# include path for generated files
	INCLUDEPATH += Intermediate\Build\Win64\Inc\YourProject

	# Will add all unreal include path 
	include(includes.pri)


2./ Create a file defines.pri next to YourProject.pro and copy this into :



	DEFINES += "$(NMakePreprocessorDefinitions)"
	DEFINES += "UE_GAME=1"
	DEFINES += "IS_PROGRAM=0"
	DEFINES += "UE_ROCKET=1"
	DEFINES += "UNICODE"
	DEFINES += "_UNICODE"
	DEFINES += "__UNREAL__"
	DEFINES += "IS_MONOLITHIC=1"
	DEFINES += "WITH_ENGINE=1"
	DEFINES += "WITH_UNREAL_DEVELOPER_TOOLS=1"
	DEFINES += "WITH_COREUOBJECT=1"
	DEFINES += "USE_STATS_WITHOUT_ENGINE=0"
	DEFINES += "WITH_PLUGIN_SUPPORT=0"
	DEFINES += "USE_LOGGING_IN_SHIPPING=0"
	DEFINES += "UE_BUILD_MINIMAL=1"
	DEFINES += "WITH_EDITOR=1"
	DEFINES += "WITH_EDITORONLY_DATA=0"
	DEFINES += "WITH_SERVER_CODE=1"
	DEFINES += "UBT_COMPILED_PLATFORM=Win64"
	DEFINES += "WIN32=1"
	DEFINES += "_WIN32_WINNT=0x0600"
	DEFINES += "WINVER=0x0600"
	DEFINES += "PLATFORM_WINDOWS=1"
	DEFINES += "NDEBUG=1"
	DEFINES += "UE_BUILD_DEVELOPMENT=1"
	DEFINES += "UE_ENGINE_DIRECTORY=$$UNREAL_PATH/4.2/Engine/"
	DEFINES += "ORIGINAL_FILE_NAME="YourProject.exe""
	DEFINES += "YourProject_API="
	DEFINES += "UE_ENABLE_ICU=1"
	DEFINES += "WITH_STEAMWORKS=0"
	DEFINES += "WITH_DIRECTXMATH=0"
	DEFINES += "CORE_API="
	DEFINES += "COREUOBJECT_API="
	DEFINES += "WITH_PHYSX=1"
	DEFINES += "WITH_APEX=1"
	DEFINES += "WITH_RECAST=1"
	DEFINES += "WITH_SPEEDTREE=0"
	DEFINES += "ENGINE_API="
	DEFINES += "SLATE_API="
	DEFINES += "INPUTCORE_API="
	DEFINES += "SLATECORE_API="
	DEFINES += "MESSAGING_API="
	DEFINES += "RENDERCORE_API="
	DEFINES += "RHI_API="
	DEFINES += "SHADERCORE_API="
	DEFINES += "ASSETREGISTRY_API="
	DEFINES += "ENGINEMESSAGES_API="
	DEFINES += "ENGINESETTINGS_API="
	DEFINES += "SYNTHBENCHMARK_API="
	DEFINES += "RENDERER_API="
	DEFINES += "UE_EDITOR=1"
	DEFINES += "GITSOURCECONTROL_API="
	DEFINES += "EDITORSTYLE_API="
	DEFINES += "SOURCECONTROL_API="
	DEFINES += "USE_NETWORK_PROFILER=1"
	DEFINES += "WITH_SIMPLYGON=0"
	DEFINES += "UNREALED_API="
	DEFINES += "BSPMODE_API="
	DEFINES += "DOCUMENTATION_API="
	DEFINES += "PROJECTS_API="
	DEFINES += "SANDBOXFILE_API="
	DEFINES += "UNREALEDMESSAGES_API="
	DEFINES += "BLUEPRINTGRAPH_API="
	DEFINES += "XAUDIO2_API="
	DEFINES += "USERFEEDBACK_API="
	DEFINES += "COLLECTIONMANAGER_API="


4./ Create a file includes.pri next to YourProject.pro and copy this into :



	# Engine include path
	INCLUDEPATH += "$(NMakeIncludeSearchPath)"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Internationalization"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Async"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Concurrency"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Containers"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Delegates"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\GenericPlatform"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\HAL"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Math"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Misc"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Modules"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Modules\Boilerplate"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\ProfilingDebugging"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Serialization"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Serialization\Json"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Stats"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Templates"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\UObject"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Core\Public\Windows"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\CoreUObject"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Blueprint"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Misc"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Serialization"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\Templates"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\CoreUObject\Public\UObject"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Engine"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\AI"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Landscape"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Net"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Slate"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Engine\Public\Tests"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Slate"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Application"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Commands"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Docking"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Layout"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\MultiBox"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Notifications"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Styling"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Text"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Framework\Views"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Colors"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Docking"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Images"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Input"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Layout"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Navigation"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Notifications"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Testing"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Text"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Tutorials"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Slate\Public\Widgets\Views"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\InputCore\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\InputCore"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\InputCore\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SlateCore"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Animation"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Application"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Brushes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Fonts"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Input"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Layout"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Logging"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Rendering"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Sound"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Styling"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Textures"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Types"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SlateCore\Public\Widgets"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Messaging"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Messaging\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Messaging\Public\Common"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Messaging\Public\Interfaces"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\RenderCore"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\RenderCore\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\RHI"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\RHI\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\ShaderCore"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\ShaderCore\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\AssetRegistry"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\AssetRegistry\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineMessages\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\EngineMessages"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineMessages\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineSettings\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\EngineSettings"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\EngineSettings\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SynthBenchmark"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Developer\SynthBenchmark\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Renderer"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Renderer\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\EditorStyle"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\EditorStyle\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\EditorStyle\Public\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\EditorStyle\Public\Interfaces"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SourceControl"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Developer\SourceControl\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Programs\UnrealLightmass\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\UnrealEd"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Commandlets"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Dialogs"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\DragAndDrop"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Features"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Kismet2"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Layers"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEd\Public\Toolkits"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\BspMode"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\BspMode\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Documentation"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\Documentation\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\Projects"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Projects\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Projects\Public\Interfaces"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\SandboxFile"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\SandboxFile\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEdMessages\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\UnrealEdMessages"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UnrealEdMessages\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\BlueprintGraph\Classes"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\BlueprintGraph"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\BlueprintGraph\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\XAudio2"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Runtime\Windows\XAudio2\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\UserFeedback"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Editor\UserFeedback\Public"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Intermediate\Build\Win64\Inc\CollectionManager"
	INCLUDEPATH += "$$UNREAL_PATH\4.2\Engine\Source\Developer\CollectionManager\Public"
	INCLUDEPATH += "$$VISUAL_PATH\VC\INCLUDE"
	INCLUDEPATH += "C:\Program Files (x86)\Windows Kits\8.1\include\shared"
	INCLUDEPATH += "C:\Program Files (x86)\Windows Kits\8.1\include\um"
	INCLUDEPATH += "C:\Program Files (x86)\Windows Kits\8.1\include\winrt"


Basically the defines.pri and includes.pri will store specific include and define that can be found into Visual C++ project.

Once you have done that you can already open YourProject.pro with QtCreator and have full intellisense support !

Now we are gonna do some stuff allowing you to build outside of VS Express

1./ Add your C:\Program Files\Unreal Engine\4.2\Engine\Binaries\DotNET equivalent to your windows PATH (search on internet how to add something to Windows path if you don’t know how to do it)

2./ Close and relaunch your windows explorer to refresh your PATH ! (if you don’t do it, it will not find UnrealBuildTool.exe)

3./ Create a file BUILD_DLL.bat and copy this into :



	UnrealBuildTool.exe YourProjectEditor Win64 Development "%CD%\YourProject.uproject" -rocket


4./ In QtCreator you must go into your project settings in Build and remove all compilations steps, then add a Custom Process Step and set Command to BUILD_DLL.bat and Working Directory to your root project directory

Now when you hit build button (the hammer) or press CTRL + B QtCreator will run the BUILD_DLL.bat and build your project =)

The last step is the execution

1./ Add your C:\Program Files\Unreal Engine\4.2\Engine\Binaries\Win64 equivalent to your windows PATH (search on internet how to add something to Windows path if you don’t know how to do it)

2./ Close and relaunch your windows explorer to refresh your PATH ! (if you don’t do it, it will not find UE4Editor.exe)

3./ Create a file LaunchSolo.bat and copy this into :



	START UE4Editor.exe "%CD%\YourProject.uproject" Your_Map?game=YourProject -game -ResX=1280 -ResY=720
	EXIT


4./ In QtCreator you must go into your project settings in Run and add a Custom Executable and set Executable to LaunchSolo.bat and Working Directory to your root project directory

Now when your hit the play button or press CTRL + R QtCreator will run LaunchSolo.bat and launch your project =)

Your are now ready to develop using QtCreator ! (Congratulation !)

This guide could be use with other IDE like Eclipse as well :wink:

I realy hope this will help you !

Bests

Thanks to W1930U7 for his video !
https://docs.google.com/file/d/0B0eV5r9stGxaMGpkQ2ZsTmh2REU/edit

PS: If you have questions, first re-read the guide to make sure you don’t forgot anything and then ask it !

PS: Wiki link : A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums

1 Like

This looks really great, I was actually just looking for something like this. I can’t try it right now, so I can’t provide any feedback but thank you for the time you spent in putting this up. Would you mind throwing this up on the unreal wiki too, so that more people will be likely to see and find it?

Will have to learn how to contribute to a wiki ! But yes will do it :wink:

Great job, I dowloaded QT Creator to try this and I see you’ve already gotten it done. I’m looking forward to trying it out.

I can build and run my project and Ive got to say that it works pretty smooth - much faster than VS intellisense. Although, QT creator lacks few cool features comparing to Visual Assist X.

But what about debugging project? Setting up breakpoints and stepping through application flow etc.

Glad to know that is working for you ! I have not start test on debugging right now but I will !

Please update with what you find out, I’m curious to see if this will work. Also, are you compiling with MS C++ or GCC?

Just use the UnrealBuildTool wich is MS C++ (MSBuild.exe)

Got it working for editing code only (still using VS for compile/debug) and I am impressed by the speed of Intellisense.
Now how embarrassing can this be for Microsoft? How difficult can it be to code a quick header file parser?
Antares, thanks man!

Just create the wiki page here :

Hi Antares,
I got QtCreator working a while back, but used a slightly different approach (plain project + custom toolchain-kits so debugging and highlighting of build errors were working). Eventually I gave up as I couldn’t get some things working:

  1. QtCreator code completion couldn’t handle the deep nested hierarchies of ue4 and therefor I couldn’t get code completion fully working on parent class properties/methods (it worked only up to 3-4 parent classes)
  2. Visual Studio uses some precompiled headers techniques which are automatically included in each file. As QtCreator relies on standard C++ header includes (clean C++ style), I always had to include the correct missing headers. But it was quite annoying and there were always some small glitches were it wasn’t fully working

Does your solution solve these issues? Then I’ll give it another try as I also prefer QtCreator to VS :slight_smile:

I understand what you did, here I have include everything that VS include, this mean that Intellisense is fully working, even OVERRIDE and other macro are understand by QtCreator, give a try !

I would like to try this by I am stuck at the build/run step. I do not see a working directory field and I don’t know if I link to the build.bat or to the unrealbuildtool…
If you could be more precise or perhaps take a screenshot of your settings so that I may finish my setup, thank you.

You have to use BUILD_DLL.bat, but unrealbuildtool must be in your windows path.

I will post screenshot as soon as I can

I seem to be stuck on this part:
4./ In QtCreator you must go into your project settings in Build and remove all compilations steps, then add a Custom Process Step and set Command to BUILD_DLL.bat and Working Directory to your root project directory

I’ve opened the MyProject.pro in QtCreator.
In Project Mode (is synonymous with Project Settings?), there I see under Configure Project: No Valid Kits. I’m not sure if that’s an issue.
Looking for Build Settings. I found ‘Build & Run’ under options, again I’m not sure if this is the correct area?

First you need to add at least one kit, if you don’t have available kit it means that you may have not install full Qt Package, once you will add a kit to your project you will see options

Ah, thanks. Yea I only downloaded the Creator because Chrome keeps blocking the full version thinking that it’s got malware.

:-1: error: No rule to make target ‘Source/EightyThree/.cpp’, needed by 'debug/.o’. Stop.

this is output when I try to run build.

This is because you have not complete this part :

4./ In QtCreator you must go into your project settings in Build and remove all compilations steps, then add a Custom Process Step and set Command to BUILD_DLL.bat and Working Directory to your root project directory

And QtCreator try to build the game without bat file

That is the step that i cannot finish, I do not see a working path or command textfield to set the .bat. I do see a build path, a makefile path … and i do not know where the run executable path textfield is.