error C1083: Cannot open include file: 'atlbase.h': No such file or directory

Trying to compile the UE4 Development Editor, Win64 and after a while a compilation error shows:

error C1083: Cannot open include file: ‘atlbase.h’: No such file or directory

It seems atlbase.h is not part of Visual Studio 2013 Express Edition?

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC>echo %vcinstalldir%
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\

atlbase.h does NOT exist, I guess it should be here?
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\atlbase.h

I’m having similar issues with VS2013 Express. Found out that the define was set to WITH_VSEXPRESS=0, even that I restarted the machine after VS installation and rebuild project files with GenerateProjectFiles.bat.

Also noticed even that the WITH_VSEXPRESS=1, VSAccessorModule.cpp doesn’t work properly because of the #if !WITH_VSEXPRESS, not sure is this an VS2013 issue but #if !defined(WITH_VSEXPRESS) seems to work.

I just changed both WITH_VSEXPRESS to =1 in the file VSAccessor.Build.cs. Then rebuild the project “UnreadBuildTool”. After that build the UE4 project and it should work.

This seems to work for both Visual Studio 2012 Ultimate and Visual Studio 2013 Express for Desktop.

Thanks for the tips, still don’t have my access yet but I am glad to read that before !

Editing VSAccessor.Build.cs fixed the build with VS 2013 Express for me as well, thanks!

I’m having the same problem
could you explain in detail what exactly should the line says (WITH_VSEXPRESS) ??

Sorry about this! We discovered an issue at the last second where having multiple versions of Visual Studio installed, if any version is a non-Express version, Unreal Build Tool will assume you have the Professional version of Visual Studio 2013 and try to compile with ATL enabled, which is not included with Visual Studio 2013 Express. Editing VSAccessor.Build.cs and forcing WITH_VSEXPRESS=1 is a totally acceptable workaround. We’ll try to get a proper fix out to you guys soon.

–Mike

Yes, I figured it must be because I have like 6 different Visual Studio versions installed, a mix of 2008 Professional, 2010 Ultimate and 2013 Express.

Thanks for the fast help!

You know what it was for me? Atmel Studio. They install the Visual Studio 10 IDE wraper up, but it comes back as a full version. Also I had both Visual Studio 12 installed as well as 13 and I had to uninstall 12 because the project generator kept getting wrong folders.

Just some extra thoughts:)

PS - Oh, found the code in the build process that does this. Its over in UEBuildWindows.cs. I don’t have VS 13 pro so I don’t know the right string, anyone else know if this works who have it?



	/** True if VS EnvDTE is available (false when building using Visual Studio Express) */
		public static bool bHasVisualStudioDTE
		{
			get
			{
				try
				{
                    RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry32).OpenSubKey("VisualStudio.DTE");
                    if (key == null) return false;
                    key = key.OpenSubKey("CurVer");
                    if (key == null) return false;  // shouldn't happen if VS Pro is installed right
                    string version = key.GetValue(null) as string;
                    if (string.IsNullOrWhiteSpace(version)) return false; // again, shouldn't happen 
                    if (version != "VisualStudio.DTE.12.0" || version != "VisualStudio.DTE.13.0") return false; // note sure about 13.0 as it stull uses the 12 DTE interface?
                    return true;

                    // Interrogate the Win32 registry
					// return RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry32).OpenSubKey("VisualStudio.DTE") != null;
				}
				catch(Exception) 
				{
					return false;
				}
			}
		}


It might be the long way around, but you can also fix this for Express by downloading the Windows Driver Kit 7.1 : http://www.microsoft.com/en-us/download/confirmation.aspx?id=11800 and then add the ATL inc and lib directories in the UE4 project.

+1

I think this thread should be sticky for a while until the fix comes out…