Голосование за лучший ответ
Sahaprof
Мыслитель
(8372)
5 месяцев назад
Ошибка, с которой вы столкнулись, связана с несовместимостью компилятора Visual Studio и Unreal Engine 5. Так как ошибка error C2440 касается преобразования типов const From * в TStringConversion, можно предположить, что проблемой является использование версии компилятора, которая не была протестирована или совместима с текущими настройками проекта.
Чтобы решить эту проблему, попробуйте следующие действия:
1. Убедитесь, что Visual Studio 2022 обновлен
Убедитесь, что у вас установлена последняя версия Visual Studio 2022. Обновление до последней версии иногда может решить проблемы с компилятором.
2. Настройте минимальную версию компилятора
Если компилятор установленный у вас поновее, чем тот, который поддерживает Unreal Engine, вам нужно будет обновить минимальные проверки версии в файле WindowsPlatformCompilerSetup.h.
Вам нужно найти и изменить файл WindowsPlatformCompilerSetup.h, который находится в следующем пути:
C:\UE_5.0\Engine\Source\Runtime\Core\Private\Windows\WindowsPlatformCompilerSetup.h
Найдите строку, которая проверяет минимальную версию компилятора, и обновите ее соответственно вашей версии Visual Studio. Например, если у вас версия Visual Studio 2022 14.40.33811, убедитесь, что минимальная версия не меньше этой.
#if _MSC_VER < 1930
#error The Visual C++ compiler version is too old. Please install Visual Studio 2019 or later.
#endif
Измените на:
#if _MSC_VER < 1940
#error The Visual C++ compiler version is too old. Please install Visual Studio 2022 or later.
#endif
3. Проверка SDK
Убедитесь, что у вас установлен Windows SDK 10.0.22621.0, используя Visual Studio Installer, и что он указан в параметрах проекта Unreal Engine.
4. Отключение адаптивной сборки (опционально)
Вы можете попробовать отключить адаптивную сборку, так как она иногда может вызывать проблемы: Для этого откройте .uproject файл и добавьте следующее в секцию BuildSettings:
"AdaptiveUnityDisables": true
5. Очистка и перестроение проекта
Иногда проблемы могут возникнуть из-за кэша сборки. Вам нужно полностью очистить и перестроить проект. Для этого:
В Visual Studio, выберите Build > Clean Solution.
Затем выберите Build > Rebuild Solution.
Следуя этим шагам, вы сможете диагностировать и устранить проблему совместимости компилятора, с которой вы столкнулись при сборке вашего проекта в Unreal Engine 5 на C++.
Константин Бельков
Гуру
(3850)
5 месяцев назад
Похоже, что вы столкнулись с ошибкой компиляции при создании проекта в Unreal Engine 5 на C++. Ошибка C2440, которую вы видите, указывает на проблему с приведением типов в файле StringConv.h. Это может быть связано с несовместимостью между используемыми версиями компилятора и Unreal Engine.
В сообщении об ошибке также упоминается, что обнаружен компилятор, который новее, чем Visual Studio 2022. Это может означать, что Unreal Engine ожидает определенную версию компилятора, которая не совпадает с установленной у вас версией.
Вот несколько шагов, которые вы можете предпринять для решения этой проблемы:
1. Проверьте версию Unreal Engine и убедитесь, что она поддерживает Visual Studio 2022. Возможно, потребуется обновить Unreal Engine до последней версии, которая совместима с вашим компилятором.
2. Обновите Visual Studio до последней версии, которая поддерживается Unreal Engine. Это может потребовать установки обновлений через Visual Studio Installer.
3. Проверьте настройки проекта в Unreal Engine, чтобы убедиться, что они соответствуют требованиям вашей версии компилятора. Это может включать в себя настройку путей к компилятору и SDK в настройках проекта.
4. Если проблема сохраняется, проверьте файл WindowsPlatformCompilerSetup.h, как указано в сообщении об ошибке, и обновите проверку минимальной версии компилятора, если это необходимо.
5. Просмотрите логи сборки, чтобы получить более подробную информацию о проблеме. Логи могут содержать дополнительные подсказки, которые помогут вам определить корень проблемы.
Если после выполнения этих шагов проблема не решится, возможно, вам придется обратиться за помощью к сообществу разработчиков Unreal Engine или в официальную поддержку. Они могут предложить более специфические решения, основанные на вашей конкретной ситуации.
Log file: C:\Users\lsina\AppData\Local\UnrealBuildTool\Log.txt
Creating makefile for MyProjectEditor (no existing makefile)
@progress push 5%
Parsing headers for MyProjectEditor
Running UnrealHeaderTool "C:\Games\MyProject\MyProject.uproject" "C:\Games\MyProject\Intermediate\Build\Win64\MyProjectEditor\Development\MyProjectEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="C:\Users\lsina\AppData\Local\UnrealBuildTool\Log_UHT.txt" -installed
Reflection code generated for MyProjectEditor in 3,9548854 seconds
@progress pop
Building MyProjectEditor...
Using Visual Studio 2022 14.40.33811 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).
[Adaptive Build] Excluded from MyProject unity file: MyProject.cpp, MyProjectGameModeBase.cpp
Determining max actions to execute in parallel (4 physical cores, 8 logical cores)
Executing up to 4 processes, one per physical core
Building 9 actions with 4 processes...
[1/9] Resource Default.rc2
[2/9] Compile SharedPCH.Engine.ShadowErrors.cpp
Detected compiler newer than Visual Studio 2022, please update min version checking in WindowsPlatformCompilerSetup.h
C:\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\StringConv.h(1048): error C2440: <function-style-cast>: ?????????? ?८?ࠧ????? "const From *" ? "TStringConversion<TStringConvert<From,To>,128>"