64 Bit Development with vc2003

本文档详细介绍了如何使用Visual Studio 2003进行64位应用程序开发的过程,包括设置开发环境、配置项目以及解决常见问题的方法。还提供了从32位到64位转换时需要注意的数据类型变化及结构对齐等问题的解决方案。

 64 Bit Development

Introduction

Note: these notes were written for Visual Studio 2003. Visual Studio 2005 has built in support for developing 64 bit applications so if oyu have the latest Visual Studio these notes are not needed.

I have a AMD 64 dual core machine running Windows Professional X64 Edition and decided to convert my T2 Texture Generation program to run as a 64 bit application. I found there was surprisingly little documentation on the Internet to help me and so the process was far from simple. By documenting my experiences in these notes I hope to help others wishing to write 64 bit applications.

The 64 bit Development Environment

The first step was to set up my development environment for 64 bit development. I use Visual Studio 2003 which has little built in support for 64 bit development.

In order to create 64 bit applications you need to install the latest Platform SDK from Microsoft (Microsoft Platform SDK for Windows Server 2003). The SDK, as well as having libraries for 32 bit programming, has 64 bit versions for AMD64 and IA64 (Intel) development.

Getting the correct library and header file paths set up in Visual Studio proved surprisingly difficult. I wanted the choice of developing 32 bit or 64 bit projects. While the platform SDK comes with command files to set up the correct paths they wipe out any other paths. Since T2 uses DirectX I also needed the DirectX paths setting correctly.

In the end I created two batch files, one for normal 32 bit development and one for 64 bit development.

32 bit development batch file

call "C:/Program Files/Microsoft Platform SDK/SetEnv.Cmd" /XP32 /RETAIL
call "dx_setEnv.Cmd" x86
start "" "C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Common7/IDE/devenv.exe" /useenv

64 bit development batch file

call "C:/Program Files/Microsoft Platform SDK/SetEnv.Cmd" /XP64 /RETAIL
call "dx_setenv.cmd" AMD64
start "" "C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Common7/IDE/devenv.exe" /useenv

If you want to use these you obviously need to change the paths according to your own set up.

The first line of each batch file calls the SDK provided command file to set 32 or 64 bit paths. The second line calls another command file that I created to append the correct DirectX path (DirectX provides both 32 and 64 bit libraries). This batch file is a bit large to display on this page but you can download it here: dx_setenv.cmd. The final line starts Visual Studio with the /useenv flag to indicate it should use the environment variables for its paths.

You can check that the paths are correct via the Tools / Options menu, Selecting Projects and VC++ Directories. My library paths for 64 bit development look like this:

C:/Program Files (x86)/Microsoft DirectX 9.0 SDK (August 2005)/Lib/x64
C:/Program Files/Microsoft Platform SDK/Lib/AMD64
C:/Program Files/Microsoft Platform SDK/Lib/AMD64/atlmfc

Now to create 32 bit applications I simply start visual studio with the 32 bit batch file and for 64 bit development I use the 64 bit batch file.

Configurations

Visual Studio 2003 does not support debugging 64 bit applications so I just created a release 64 bit configuration. You need to specify the target machine. This has to be specified in the linker command line box:

/machine:AMD64

For Intel development use: /machine:AI64

Another issue is that you cannot run the 64 bit version from within Visual Studio. You get an 'Unable to start debugging' message with: 'The specified file is an unrecognised or unsupported binary format'.

This all makes developing 64 bit applications in Visual Studio 2003 a bit of a pain. You have lost the great debugger and so have to resort to log files and printf style output to track down bugs. One very useful setting is under C++ / General in the Visual Studio project property pages called 'Detect 64 bit Portability Issues'. I would advise having this ticked for all development as I found it very useful in spotting cases where type size changes may cause issues. I also enabled asserts in release mode to help track down problems.

From 32 bit to 64 bit

At first glance the differences between 32 bit and 64 bit development seems quite small. All that is different is the size of some data types but this can lead to all sorts of problems! The data sizes are shown below:

Data Type

32 bit

64 bit

char

8

No Change

short

16

No Change

int

32

No Change

long

32

No Change

long long

64

No Change

pointer

32

64

enum

32

No Change

float

32

No Change

double

64

No Change

long double

128

No Change

size_t

32

64

As you can see a pointer and the size_t type are different sizes under 64 bit development. Note that under Linux 64 bit development a long is 64 bits.

New Types

The basetsd.h header from the Platform SDK defines a number of useful types like DWORD32, DWORD64, INT32, INT64, ULONG_PTR etc. For a full list see this MSDN page: The New Data Types.

Structure Sizes

The single biggest headache I had with converting T2 to 64 bit was structure alignment. The change in size of the size_t type also created some problems as I had been saving it to disk to indicate the size of some data to follow. Again loading the old data files was causing a crash as I tried to load 64 bits when only 32 had been saved. Doing a safe cast to a 32 bit type solved this problem.

One issue I had suspected would cause me problems but did not was the change in size of a pointer. This can cause issues if you store a memory address in a 32 bit data type e.g. an unsigned int. Fortunately I had not done that anywhere in my code but I have heard from others who have suffered from this.

Libraries

T2 uses some free libraries like the excellent zlib library. Some of these libraries used a lot of low level C code that needed converting to avoid the type size issues.

Results

Below is a table of timing results after converting T2 to 64 bit. This shows quite a significant speed improvement running the 64 bit version however there is one big caveat. The 32 bit executable is running in a 64 bit environment and so will run slightly slower than if it were running in a 32 bit environment. At present I have no way of testing these separately but I plan in on creating a dual boot system in the future which should allow correct tests. I still believe there is a significant speed increase with the 64 bit version.

Texture Creation

Project

32 bit

64 bit

Moody

0.71

0.52

Island1High

2.70

1.94

Texture creation involves a lot of passes through texture data. From the results the 64 bit version increased the speed by about 28%

Lightmap Creation

Project

32 bit

64 bit

Moody

8.50

5.27

Island1High

20.10

10.17

Lightmap creation is a slow process as light rays are calculated between light sources and terrain, checking for obstructions in the way. From the results it can be seen that the 64 bit version increased the speed by as much as 50%. The larger the output, and hence the more calculations, the greater the speed gain.

Further Reading

 

 

 

dx_setenv.cmd批处理:

 

sdk下载地址

PS D:\EpicGames\UE_5.4\Engine\Build\BatchFiles> .\RunUAT.bat BuildPlugin -plugin="D:\LYF_File\LED\TuioUnrealPlugin-main\TUIO.uplugin" -package="D:\LYF_File\LED\Build" -TargetPlatforms=Win64 Running AutomationTool... Using bundled DotNet SDK version: 6.0.302 Starting AutomationTool... Parsing command line: BuildPlugin -plugin=D:\LYF_File\LED\TuioUnrealPlugin-main\TUIO.uplugin -package=D:\LYF_File\LED\Build -TargetPlatforms=Win64 Initializing script modules... Total script module initialization time: 0.14 s. Using C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe Executing commands... Copying 211 file(s) using max 64 thread(s) Reading plugin from D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\TUIO.uplugin... Building plugin for host platforms: Win64 Running: D:\EpicGames\UE_5.4\Engine\Binaries\ThirdParty\DotNet\6.0.302\windows\dotnet.exe "D:\EpicGames\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" UnrealEditor Win64 Development -Project="D:\LYF_File\LED\Build\HostProject\HostProject.uproject" -plugin="D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\TUIO.uplugin" -noubtmakefiles -manifest="D:\LYF_File\LED\Build\HostProject\Saved\Manifest-UnrealEditor-Win64-Development.xml" -nohotreload -log="C:\Users\renzi\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+EpicGames+UE_5.4\UBA-UnrealEditor-Win64-Development.txt" Log file: C:\Users\renzi\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+EpicGames+UE_5.4\UBA-UnrealEditor-Win64-Development.txt Available x64 toolchains (2): * C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) Unavailable x64 toolchains (2): * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133 (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023 (Family=14.16.27023, FamilyRank=5, Version=14.16.27054, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") Visual Studio 2022 compiler version 14.44.35214 is not a preferred version. Please use the latest preferred version 14.38.33130 Available x64 toolchains (2): * C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) Unavailable x64 toolchains (2): * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133 (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023 (Family=14.16.27023, FamilyRank=5, Version=14.16.27054, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") Visual Studio 2022 compiler version 14.44.35214 is not a preferred version. Please use the latest preferred version 14.38.33130 Parsing headers for UnrealEditor Running Internal UnrealHeaderTool D:\LYF_File\LED\Build\HostProject\HostProject.uproject D:\LYF_File\LED\Build\HostProject\Intermediate\Build\Win64\UnrealEditor\Development\UnrealEditor.uhtmanifest -WarningsAsErrors -installed Total of 6 written Reflection code generated for UnrealEditor in 2.312138 seconds Writing manifest to D:\LYF_File\LED\Build\HostProject\Saved\Manifest-UnrealEditor-Win64-Development.xml Building UnrealEditor... Using Visual Studio 2022 14.44.35214 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207) and Windows 10.0.26100.0 SDK (C:\Program Files (x86)\Windows Kits\10). Warning: Visual Studio 2022 compiler is not a preferred version [Adaptive Build] Excluded from TUIO unity file: TUIO.cpp, TuioContainerStruct.cpp, TuioReceiverComponent.cpp Determining max actions to execute in parallel (16 physical cores, 24 logical cores) Executing up to 16 processes, one per physical core Requested 1.5 GB memory per action, 14.26 GB available: limiting max parallel actions to 9 Using Parallel executor to run 9 action(s) ------ Building 9 action(s) started ------ [1/9] Resource Default.rc2 [2/9] Compile [x64] SharedPCH.UnrealEd.Cpp20.cpp D:\EpicGames\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\SkeletalMesh.h(930): warning C4996: 'FBoneMirrorInfo': FBoneMirrorInfo is deprecated. Please use UMirrorDataTable for mirroring support. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [3/9] Compile [x64] Module.TUIO.cpp [4/9] Compile [x64] TuioReceiverComponent.cpp [5/9] Compile [x64] TuioContainerStruct.cpp [6/9] Compile [x64] TUIO.cpp [7/9] Link [x64] UnrealEditor-TUIO.lib 正在创建库 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Intermediate\Build\Win64\x64\UnrealEditor\Development\TUIO\UnrealEditor-TUIO.lib 和对象 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Intermediate\Build\Win64\x64\UnrealEditor\Development\TUIO\UnrealEditor-TUIO.exp [8/9] Link [x64] UnrealEditor-TUIO.dll 正在创建库 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Intermediate\Build\Win64\x64\UnrealEditor\Development\TUIO\UnrealEditor-TUIO.sup.lib 和对象 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Intermediate\Build\Win64\x64\UnrealEditor\Development\TUIO\UnrealEditor-TUIO.sup.exp [9/9] WriteMetadata UnrealEditor.target Total time in Parallel executor: 55.54 seconds Total execution time: 62.04 seconds Took 62.11s to run dotnet.exe, ExitCode=0 Building plugin for target platforms: Win64 Running: D:\EpicGames\UE_5.4\Engine\Binaries\ThirdParty\DotNet\6.0.302\windows\dotnet.exe "D:\EpicGames\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" UnrealGame Win64 Development -Project="D:\LYF_File\LED\Build\HostProject\HostProject.uproject" -plugin="D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\TUIO.uplugin" -noubtmakefiles -manifest="D:\LYF_File\LED\Build\HostProject\Saved\Manifest-UnrealGame-Win64-Development.xml" -nohotreload -log="C:\Users\renzi\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+EpicGames+UE_5.4\UBA-UnrealGame-Win64-Development.txt" Log file: C:\Users\renzi\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+EpicGames+UE_5.4\UBA-UnrealGame-Win64-Development.txt Available x64 toolchains (2): * C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) Unavailable x64 toolchains (2): * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133 (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023 (Family=14.16.27023, FamilyRank=5, Version=14.16.27054, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") Visual Studio 2022 compiler version 14.44.35214 is not a preferred version. Please use the latest preferred version 14.38.33130 Available x64 toolchains (2): * C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207 (Family=14.44.35207, FamilyRank=5, Version=14.44.35214, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) Unavailable x64 toolchains (2): * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133 (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") * C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023 (Family=14.16.27023, FamilyRank=5, Version=14.16.27054, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") Visual Studio 2022 compiler version 14.44.35214 is not a preferred version. Please use the latest preferred version 14.38.33130 Parsing headers for UnrealGame Running Internal UnrealHeaderTool D:\LYF_File\LED\Build\HostProject\HostProject.uproject D:\LYF_File\LED\Build\HostProject\Intermediate\Build\Win64\UnrealGame\Development\UnrealGame.uhtmanifest -WarningsAsErrors -installed Total of 6 written Reflection code generated for UnrealGame in 0.6357883 seconds Writing manifest to D:\LYF_File\LED\Build\HostProject\Saved\Manifest-UnrealGame-Win64-Development.xml Building UnrealGame... Using Visual Studio 2022 14.44.35214 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207) and Windows 10.0.26100.0 SDK (C:\Program Files (x86)\Windows Kits\10). Warning: Visual Studio 2022 compiler is not a preferred version [Adaptive Build] Excluded from TUIO unity file: TUIO.cpp, TuioContainerStruct.cpp, TuioReceiverComponent.cpp Determining max actions to execute in parallel (16 physical cores, 24 logical cores) Executing up to 16 processes, one per physical core Requested 1.5 GB memory per action, 15.53 GB available: limiting max parallel actions to 10 Using Parallel executor to run 4 action(s) ------ Building 4 action(s) started ------ [1/4] Compile [x64] TuioContainerStruct.cpp D:\EpicGames\UE_5.4\Engine\Source\Runtime\Core\Public\GenericPlatform\GenericPlatformProcess.h(800): error C2062: 意外的类型“void” D:\EpicGames\UE_5.4\Engine\Source\Runtime\Core\Public\GenericPlatform\GenericPlatformProcess.h(801): error C2334: “{”的前面有意外标记;跳过明显的函数体 [2/4] Compile [x64] TuioReceiverComponent.cpp D:\EpicGames\UE_5.4\Engine\Source\Runtime\Core\Public\GenericPlatform\GenericPlatformProcess.h(800): error C2062: 意外的类型“void” D:\EpicGames\UE_5.4\Engine\Source\Runtime\Core\Public\GenericPlatform\GenericPlatformProcess.h(801): error C2334: “{”的前面有意外标记;跳过明显的函数体 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Source\TUIO\Private\TuioReceiverComponent.cpp(49): error C2027: 使用了未定义类型“ENamedThreads::Type” D:\EpicGames\UE_5.4\Engine\Source\Runtime\Core\Public\GenericPlatform\GenericPlatformProcess.h(69): note: 参见“ENamedThreads::Type”的声明 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Source\TUIO\Private\TuioReceiverComponent.cpp(49): error C2065: “GameThread”: 未声明的标识符 D:\LYF_File\LED\Build\HostProject\Plugins\TUIO\Source\TUIO\Private\TuioReceiverComponent.cpp(49): error C3861: “AsyncTask”: 找不到标识符 [3/4] Compile [x64] TUIO.cpp [4/4] Compile [x64] Module.TUIO.cpp Total time in Parallel executor: 4.24 seconds Total execution time: 5.92 seconds Took 6.00s to run dotnet.exe, ExitCode=6 UnrealBuildTool failed. See log for more details. (C:\Users\renzi\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+EpicGames+UE_5.4\UBA-UnrealGame-Win64-Development.txt) AutomationTool executed for 0h 1m 8s AutomationTool exiting with ExitCode=6 (6) BUILD FAILED 命令行报错
09-19
LogUObjectHash: Compacting FUObjectHashTables data took 1.41ms LogTurnkeySupport: Project requires temp target (已启用VaRestX插件) LogLauncherProfile: Unable to use promoted target - D:/meikuang5.4/Binaries/Win64/UnrealGame.target does not exist. LogMonitoredProcess: Running Serialized UAT: [ cmd.exe /c ""E:/UE_5.4/Engine/Build/BatchFiles/RunUAT.bat" -ScriptsForProject="D:/meikuang5.4/煤矿变电站.uproject" Turnkey -command=VerifySdk -platform=Win64 -UpdateIfNeeded -EditorIO -EditorIOPort=61928 -project="D:/meikuang5.4/煤矿变电站.uproject" BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook -project="D:/meikuang5.4/煤矿变电站.uproject" -unrealexe="E:\UE_5.4\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" -platform=Win64 -installed -stage -archive -package -build -clean -pak -iostore -compressed -archivedirectory="D:/meikuangdabao" -c lientconfig=Development" -nocompile -nocompileuat ] UATHelper: 打包 (Windows): Running AutomationTool... UATHelper: 打包 (Windows): Using bundled DotNet SDK version: 6.0.302 UATHelper: 打包 (Windows): Starting AutomationTool... UATHelper: 打包 (Windows): Parsing command line: -ScriptsForProject=D:/meikuang5.4/ú?????.uproject Turnkey -command=VerifySdk -platform=Win64 -UpdateIfNeeded -EditorIO -EditorIOPort=61928 -project=D:/meikuang5.4/ú?????.uproject BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook -project=D:/meikuang5.4/ú?????.uproject -unrealexe=E:\UE_5.4\Engine\Binaries\Win64\UnrealEditor-Cmd.exe -platform=Win64 -installed -stage -archive -package -build -clean -pak -iostore -compressed -archivedirectory=D:/meikuangdabao -clientconfig=Development -nocompile -nocompileuat UATHelper: 打包 (Windows): Initializing script modules... UATHelper: 打包 (Windows): Total script module initialization time: 0.18 s. UATHelper: 打包 (Windows): Using C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe UATHelper: 打包 (Windows): Executing commands... UATHelper: 打包 (Windows): Installed Sdk validity: UATHelper: 打包 (Windows): Win64: (Status=Valid, MinAllowed_Sdk=10.0.18362.0, MaxAllowed_Sdk=10.9.99999.0, Current_Sdk=10.0.26100.0, Allowed_AutoSdk=10.0.19041.0, Current_AutoSdk=, Flags="InstalledSdk_ValidVersionExists") UATHelper: 打包 (Windows): Scanning for envvar changes... UATHelper: 打包 (Windows): ... done! UATHelper: 打包 (Windows): Cleaning Temp Paths... UATHelper: 打包 (Windows): BUILD SUCCESSFUL UATHelper: 打包 (Windows): Setting up ProjectParams for D:\meikuang5.4\煤矿变电站.uproject UATHelper: 打包 (Windows): ********** BUILD COMMAND STARTED ********** UATHelper: 打包 (Windows): Running: E:\UE_5.4\Engine\Binaries\ThirdParty\DotNet\6.0.302\windows\dotnet.exe "E:\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" 煤矿变电站 Win64 Development -Project="D:\meikuang5.4\煤矿变电站.uproject" -Clean -NoHotReload "D:\meikuang5.4\煤矿变电站.uproject" -NoUBTMakefiles -remoteini="D:\meikuang5.4" -skipdeploy -log="C:\Users\PC\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_5.4\UBA-煤矿变电站-Win64-Development.txt" UATHelper: 打包 (Windows): Log file: C:\Users\PC\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_5.4\UBA-ú����վ-Win64-Development.txt UATHelper: 打包 (Windows): Cleaning ú����վ binaries... UATHelper: 打包 (Windows): Compiled assembly file 'C:\Users\PC\AppData\Local\UnrealEngine\Intermediate\Build\BuildRules\MarketplaceRules.dll' appears to be for a newer CLR version or is otherwise invalid. Unreal Build Tool will try to recompile this assembly now. (Exception: Could not load file or assembly 'C:\Users\PC\AppData\Local\UnrealEngine\Intermediate\Build\BuildRules\MarketplaceRules.dll'. Format of the executable (.exe) or library (.dll) is invalid.) UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRestEditor\VaRestEditor.Build.cs(5,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'VaRestEditor' UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRest\VaRest.Build.cs(7,15): error CS0101: The namespace 'UnrealBuildTool.Rules' already contains a definition for 'VaRest' UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRestEditor\VaRestEditor.Build.cs(7,9): error CS0111: Type 'VaRestEditor' already defines a member called 'VaRestEditor' with the same parameter types UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRest\VaRest.Build.cs(9,10): error CS0111: Type 'VaRest' already defines a member called 'VaRest' with the same parameter types UATHelper: 打包 (Windows): Available x64 toolchains (1): UATHelper: 打包 (Windows): * C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207 UATHelper: 打包 (Windows): (Family=14.44.35207, FamilyRank=5, Version=14.44.35219, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) UATHelper: 打包 (Windows): Unavailable x64 toolchains (1): UATHelper: 打包 (Windows): * C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133 UATHelper: 打包 (Windows): (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") UATHelper: 打包 (Windows): Visual Studio 2022 compiler version 14.44.35219 is not a preferred version. Please use the latest preferred version 14.38.33130 UATHelper: 打包 (Windows): Took 2.26s to run dotnet.exe, ExitCode=0 UATHelper: 打包 (Windows): Running: E:\UE_5.4\Engine\Binaries\ThirdParty\DotNet\6.0.302\windows\dotnet.exe "E:\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" 煤矿变电站 Win64 Development -Project=D:\meikuang5.4\煤矿变电站.uproject -Manifest=D:\meikuang5.4\Intermediate\Build\Manifest.xml -remoteini="D:\meikuang5.4" -skipdeploy -log="C:\Users\PC\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_5.4\UBA-煤矿变电站-Win64-Development_2.txt" UATHelper: 打包 (Windows): Log file: C:\Users\PC\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_5.4\UBA-ú����վ-Win64-Development_2.txt UATHelper: 打包 (Windows): Creating makefile for ú����վ (no existing makefile) UATHelper: 打包 (Windows): Compiled assembly file 'C:\Users\PC\AppData\Local\UnrealEngine\Intermediate\Build\BuildRules\MarketplaceRules.dll' appears to be for a newer CLR version or is otherwise invalid. Unreal Build Tool will try to recompile this assembly now. (Exception: Could not load file or assembly 'C:\Users\PC\AppData\Local\UnrealEngine\Intermediate\Build\BuildRules\MarketplaceRules.dll'. Format of the executable (.exe) or library (.dll) is invalid.) UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRestEditor\VaRestEditor.Build.cs(5,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'VaRestEditor' UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRest\VaRest.Build.cs(7,15): error CS0101: The namespace 'UnrealBuildTool.Rules' already contains a definition for 'VaRest' UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRestEditor\VaRestEditor.Build.cs(7,9): error CS0111: Type 'VaRestEditor' already defines a member called 'VaRestEditor' with the same parameter types UATHelper: 打包 (Windows): E:\UE_5.4\Engine\Plugins\Marketplace\VaRestX7f7cce2dc228V1\Source\VaRest\VaRest.Build.cs(9,10): error CS0111: Type 'VaRest' already defines a member called 'VaRest' with the same parameter types UATHelper: 打包 (Windows): Available x64 toolchains (1): UATHelper: 打包 (Windows): * C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207 UATHelper: 打包 (Windows): (Family=14.44.35207, FamilyRank=5, Version=14.44.35219, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) UATHelper: 打包 (Windows): Unavailable x64 toolchains (1): UATHelper: 打包 (Windows): * C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133 UATHelper: 打包 (Windows): (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") UATHelper: 打包 (Windows): Visual Studio 2022 compiler version 14.44.35219 is not a preferred version. Please use the latest preferred version 14.38.33130 UATHelper: 打包 (Windows): Available x64 toolchains (1): UATHelper: 打包 (Windows): * C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207 UATHelper: 打包 (Windows): (Family=14.44.35207, FamilyRank=5, Version=14.44.35219, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64) UATHelper: 打包 (Windows): Unavailable x64 toolchains (1): UATHelper: 打包 (Windows): * C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133 UATHelper: 打包 (Windows): (Family=14.29.30133, FamilyRank=5, Version=14.29.30159, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error="UnrealBuildTool requires at minimum the MSVC 14.34.31933 toolchain. Please install a later toolchain such as 14.38.33130 from the Visual Studio installer.") UATHelper: 打包 (Windows): Visual Studio 2022 compiler version 14.44.35219 is not a preferred version. Please use the latest preferred version 14.38.33130 UATHelper: 打包 (Windows): Total execution time: 2.35 seconds UATHelper: 打包 (Windows): Expecting to find a type to be declared in a module rules named 'VaRest' in 'Unknown Assembly'. This type must derive from the 'ModuleRules' type defined by UnrealBuildTool. UATHelper: 打包 (Windows): Took 2.46s to run dotnet.exe, ExitCode=8 UATHelper: 打包 (Windows): UnrealBuildTool failed. See log for more details. (C:\Users\PC\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_5.4\UBA-煤矿变电站-Win64-Development_2.txt) UATHelper: 打包 (Windows): AutomationTool executed for 0h 0m 7s UATHelper: 打包 (Windows): AutomationTool exiting with ExitCode=8 (8) UATHelper: 打包 (Windows): BUILD FAILED PackagingResults: Error: Unknown Error
10-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值