Hi there!
I’ve recently installed Unreal 4.9 and Visual Studio Community 2013 for the first time. (I already had several versions of Visual Studio installed on my computer, as well as several versions of the Windows SDK.) I then attempted to create a new project using the C++ Third Person template, but I encounter errors when the project attempts to build:
1>------ Skipped Build: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
1>Project not selected to build for this solution configuration
2>------ Build started: Project: ThirdPersonCppSample, Configuration: Development_Game x64 ------
2> Creating makefile for ThirdPersonCppSample (no existing makefile)
2> Performing full C++ include scan (no include cache file)
2> Parsing headers for ThirdPersonCppSample
2> Running UnrealHeaderTool "D:\Users\\Documents\Unreal Projects\ThirdPersonCppSample\ThirdPersonCppSample.uproject" "D:\Users\\Documents\Unreal Projects\ThirdPersonCppSample\Intermediate\Build\Win64\ThirdPersonCppSample\Development\UnrealHeaderTool.manifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -rocket -installed
2> Reflection code generated for ThirdPersonCppSample in 6.4456031 seconds
2> Performing 8 actions (4 in parallel)
2> PCH.UELinkerFixupsName.h.cpp
2> PCH.ThirdPersonCppSample.h.cpp
2> UELinkerFixups.cpp
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(936): error C2065: 'hMem' : undeclared identifier
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(936): error C2065: 'dwBytes' : undeclared identifier
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938): error C2491: '_Ret_reallocated_bytes_' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938): error C2078: too many initializers
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938): error C2146: syntax error : missing ';' before identifier 'HGLOBAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938): error C2143: syntax error : missing ';' before '__cdecl'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938): error C2377: 'HGLOBAL' : redefinition; typedef cannot be overloaded with any other symbol
2> D:\Program Files (x86)\Windows Kits\8.1\include\shared\minwindef.h(211) : see declaration of 'HGLOBAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(940): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(940): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(940): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(943): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(950): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(950): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(950): error C2491: 'GlobalSize' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(950): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(957): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(957): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(957): error C2491: 'GlobalFlags' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(957): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(965): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(965): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(965): error C2491: 'GlobalLock' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(965): error C2440: 'initializing' : cannot convert from 'int' to 'LPVOID'
2> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(965): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(970): error C2143: syntax error : missing ';' before '__cdecl'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(970): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(970): error C2370: 'HGLOBAL' : redefinition; different storage class
2> D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938) : see declaration of 'HGLOBAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(973): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(980): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(980): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(980): error C2491: 'GlobalUnlock' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(980): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(986): error C2143: syntax error : missing ';' before '__cdecl'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(986): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(986): error C2370: 'HGLOBAL' : redefinition; different storage class
2> D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(938) : see declaration of 'HGLOBAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(989): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(989): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(989): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(989): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1003): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1003): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1003): error C2182: 'GlobalFix' : illegal use of type 'void'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1003): error C2491: 'GlobalFix' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1003): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1010): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1010): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1010): error C2182: 'GlobalUnfix' : illegal use of type 'void'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1010): error C2491: 'GlobalUnfix' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1010): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1017): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1017): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1017): error C2491: 'GlobalWire' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1017): error C2440: 'initializing' : cannot convert from 'int' to 'LPVOID'
2> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1017): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1024): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1024): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1024): error C2491: 'GlobalUnWire' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1024): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1045): error C2065: 'hMem' : undeclared identifier
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1045): error C2065: 'uBytes' : undeclared identifier
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C2374: '_Ret_reallocated_bytes_' : redefinition; multiple initialization
2> D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(936) : see declaration of '_Ret_reallocated_bytes_'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C2491: '_Ret_reallocated_bytes_' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C2078: too many initializers
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C2146: syntax error : missing ';' before identifier 'HLOCAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C2143: syntax error : missing ';' before '__cdecl'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047): error C2377: 'HLOCAL' : redefinition; typedef cannot be overloaded with any other symbol
2> D:\Program Files (x86)\Windows Kits\8.1\include\shared\minwindef.h(212) : see declaration of 'HLOCAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1049): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1049): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1049): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1052): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1060): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1060): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1060): error C2491: 'LocalLock' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1060): error C2440: 'initializing' : cannot convert from 'int' to 'LPVOID'
2> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1060): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1065): error C2143: syntax error : missing ';' before '__cdecl'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1065): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1065): error C2370: 'HLOCAL' : redefinition; different storage class
2> D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047) : see declaration of 'HLOCAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1068): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1075): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1075): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1075): error C2491: 'LocalUnlock' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1075): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1082): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1082): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1082): error C2491: 'LocalSize' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1082): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1089): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1089): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1089): error C2491: 'LocalFlags' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1089): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1095): error C2143: syntax error : missing ';' before '__cdecl'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1095): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1095): error C2370: 'HLOCAL' : redefinition; different storage class
2> D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1047) : see declaration of 'HLOCAL'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1098): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1098): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1098): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1098): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1104): error C2146: syntax error : missing ')' before identifier 'hMem'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1104): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1104): error C2491: 'LocalShrink' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(1106): error C2059: syntax error : ')'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\wingdi.h(3615): error C2146: syntax error : missing ')' before identifier 'h'
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\wingdi.h(3615): error C4229: anachronism used : modifiers on data are ignored
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\wingdi.h(3615): error C2491: 'CreateDIBPatternBrush' : definition of dllimport data not allowed
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\wingdi.h(3615): error C2440: 'initializing' : cannot convert from 'int' to 'HBRUSH'
2> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
2>D:\Program Files (x86)\Windows Kits\8.1\include\um\wingdi.h(3615): error C2059: syntax error : ')'
2> -------- End Detailed Actions Stats -----------------------------------------------------------
2>ERROR : UBT error : Failed to produce item: D:\Users\\Documents\Unreal Projects\ThirdPersonCppSample\Binaries\Win64\ThirdPersonCppSample.exe
2> Total build time: 30.33 seconds
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command ""C:\Program Files\Epic Games\4.9\Engine\Build\BatchFiles\Build.bat" ThirdPersonCppSample Win64 Development "D:\Users\\Documents\Unreal Projects\ThirdPersonCppSample\ThirdPersonCppSample.uproject" -rocket" exited with code -1.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 1 skipped ==========
I tried a bunch of things, including repairs and reinstalls of various versions of Visual Studio and various versions of the Windows SDK. I’ve also tried recreating the project from the template several times. I’ve made certain that my .user property sheet has nothing in it that’s overwriting the system defaults.
I used the 12343-get_vs_environment.bat
file from this answer Can't Compile C++ Project, needs windows.h - Programming & Scripting - Epic Developer Community Forums , and this is the include path that I see:
INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE;D:\Program Files (x86)\Windows Kits\8.1\include\shared;D:\Program Files (x86)\Windows Kits\8.1\include\um;D:\Program Files (x86)\Windows Kits\8.1\include\winrt;
That looks pretty reasonable to me. (Though I’m wondering if perhaps the winrt
bit shouldn’t be there…?) I’m attached the complete into.txt
generated by the .bat file here for completeness.
Anyone have any ideas about where I might be going wrong?
Thanks a lot!