Сборка блендера в Visual Studio
Я строю блендер на Windows в Visual Studio 2017.
Я вытащил исходники для блендера через Git, и я вытащил библиотеки через svn, я скачал и установил поддержку CUDA.
Я получаю следующий вывод от запуска build.bat release
,
CMake Error: Could not create named generator Visual Studio 12 2013 Win64
Generators
Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 8 2005 [arch] = Deprecated. Generates Visual Studio 2005
project files. Optional [arch] can be
"Win64".
Borland Makefiles = Generates Borland makefiles.
NMake Makefiles = Generates NMake makefiles.
NMake Makefiles JOM = Generates JOM makefiles.
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles JOM
= Generates CodeBlocks project files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - MinGW Makefiles = Generates CodeLite project files.
CodeLite - NMake Makefiles = Generates CodeLite project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Sublime Text 2 - MinGW Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - NMake Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
Kate - MinGW Makefiles = Generates Kate project files.
Kate - NMake Makefiles = Generates Kate project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Eclipse CDT4 - NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
CMake Error: Could not create named generator Visual Studio 14 2013 Win64
Generators
Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 8 2005 [arch] = Deprecated. Generates Visual Studio 2005
project files. Optional [arch] can be
"Win64".
Borland Makefiles = Generates Borland makefiles.
NMake Makefiles = Generates NMake makefiles.
NMake Makefiles JOM = Generates JOM makefiles.
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles JOM
= Generates CodeBlocks project files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - MinGW Makefiles = Generates CodeLite project files.
CodeLite - NMake Makefiles = Generates CodeLite project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Sublime Text 2 - MinGW Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - NMake Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
Kate - MinGW Makefiles = Generates Kate project files.
Kate - NMake Makefiles = Generates Kate project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Eclipse CDT4 - NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Microsoft (R) Build Engine version 15.4.8.50001 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
MSBUILD : error MSB1009: Project file does not exist.
Switch: D:\Users\brazg\Documents\GitHub\blender\..\build_windows_Release_x64_vc14_Release\Blender.sln
"Build Failed"
Он не любит использовать что-то выше vc12, что я пытаюсь сделать это.
Я что-то пропустил?
В make.bat тоже есть код ссылки на vc 2017:
else if "%1" == "x64" (
set BUILD_ARCH=x64
) else if "%1" == "2017" (
set BUILD_VS_VER=15
set BUILD_VS_YEAR=2017
set BUILD_VS_LIBDIRPOST=vc14
1 ответ
Был еще один файл, который нужно было отредактировать.
Во-первых, ошибка platform_win32.cmake.
Я изменился: set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
в set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15)
на линиях 147 и 150. Это исправило ошибку о несуществующей win32_vc14. Строки 147 и 150 относятся к обнаружению VS2017, поэтому они должны были сказать win32_vc15.
Затем make.bat нужно немного отредактировать, но не так сильно. Блок проверки работоспособности I закомментировал строки с 187 по 202;
:sanity_checks
REM Sanity Checks
::where /Q msbuild
::if %ERRORLEVEL% NEQ 0 (
:: if "%BUILD_VS_VER%"=="12" (
:: rem vs12 not found, try vs14
:: echo Visual Studio 2013 not found, trying Visual Studio 2015.
:: set BUILD_VS_VER=15
:: set BUILD_VS_YEAR=2017
:: set BUILD_VS_LIBDIRPOST=vc15
:: goto DetectMSVC
:: ) else (
::"" echo Error: "MSBuild" command not in the PATH.
:: echo You must have MSVC installed and run this from the "Developer Command ::Prompt"
:: echo ^(available from Visual Studio's Start menu entry^), aborting!
:: goto EOF
:: )
::)
и строки с 83 по 87:
::set BUILD_VS_VER=14
::set BUILD_VS_YEAR=2015
::set BUILD_VS_LIBDIRPOST=vc14
::) else if "%1" == "2013" (
::set BUILD_VS_VER=12
::set BUILD_VS_YEAR=2013
::set BUILD_VS_LIBDIRPOST=vc12
в противном случае он все еще ищет vc12.
Строка 81 также должна быть отредактирована из: set BUILD_VS_LIBDIRPOST=vc14
в set BUILD_VS_LIBDIRPOST=vc15
Линия 81 также относится к поиску VS2017, поэтому я не уверен, почему он был установлен на vc14.
Изменить: строка 162: if DEFINED VisualStudioVersion goto msvc_detect_finally
нужно изменить, чтобы сказать: if DEFINED VisualStudioVersion goto msvc_detect_finally_2017
После этого компиляция работала отлично для 01: 29: 42.49, но все равно не удалась, вероятно, потому что она не может найти pthread.h или zlib.h или несколько других заголовочных файлов.
Спасибо за вашу помощь @Ramhound. Я буду рад пообщаться с вами в ближайшее время, если у вас будет больше информации. Я включаю ссылку на мой Build.log ниже на случай, если там что-то есть.