Сборка блендера в Visual Studio

642
Whitequill Riclo

Я строю блендер на 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 
0
Это работает сейчас! Я очень зеленый с пакетными сценариями Visual Studio. Я более знаком с GCC. Спасибо! :) Whitequill Riclo 6 лет назад 0

1 ответ на вопрос

0
Whitequill Riclo

Был еще один файл, который нужно было отредактировать.

Во-первых, ошибка platform_win32.cmake .

Я изменил: set(LIBDIR $/../lib/$_vc14)в set(LIBDIR $/../lib/$_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 ниже на случай, если там что-то есть.

Build.log

Я пробовал с Visual Studio 2013 x64 (vc12) и был такой же результат, как 2017 x64 (vc15). Они оба не смогли собрать ... Вот журнал из сборки vc12: [build.log vc12] (https://pastebin.com/RC17Hk8Q) Whitequill Riclo 6 лет назад 0
Я добавлю, что я изменил / maxcpucount на 8, чтобы лучше представлять мою систему. по умолчанию установлено значение 2. По моему выбору, компилятор должен проверять количество ядер или логических процессоров и оптимизировать процессор при компиляции. Whitequill Riclo 6 лет назад 0
означает _ / maxcpucount_: ядра процессора; логические процессоры; потоки или физические процессоры? Whitequill Riclo 6 лет назад 0