Compile on Windows/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "FreeCAD использует [https://en.wikipedia.org/wiki/Qt_(software) Qt] в качестве инструментария для его пользовательского...")
No edit summary
 
(45 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


<div class="mw-translate-fuzzy">
{{Docnav/ru
{{Docnav/ru
|[[Licence/ru|Licence]]
|[[License/ru|Лицензия]]
|[[Compile_on_Linux/ru|Compile on Linux]]
|[[Compile_on_Linux/ru|Компиляция в Linux]]
}}
}}
</div>


{{TOCright}}
{{TOCright}}


<div class="mw-translate-fuzzy">
На этой странице шаг за шагом объясняется "как скомпилировать FreeCAD 0.19 или новее в Windows"". Для других платформ см.[[Compiling|Compiling]].
На этой странице шаг за шагом объясняется "как скомпилировать FreeCAD 0.19 или новее в Windows"". Для других платформ см.[[Compiling|Compiling]].
</div>


<span id="Prerequisites"></span>
==Требования==
==Требования==


Для компиляции FreeCAD в Windows требуется несколько инструментов и библиотек.
Для компиляции FreeCAD в Windows требуется несколько инструментов и библиотек.


<span id="Required"></span>
===Требования===
===Требования===


<div class="mw-translate-fuzzy">
* Компилятор. FreeCAD тестируется с помощью Visual Studio (MSVC)—другие компиляторы могут работать, но инструкции по использованию здесь не включены. Более подробная информация в [[#Compiler]], находится ниже.
* Компилятор. FreeCAD тестируется с помощью Visual Studio (MSVC)—другие компиляторы могут работать, но инструкции по использованию здесь не включены. Более подробная информация в [[#Compiler]], находится ниже.
</div>


* [http://git-scm.com/ Git] (Для Git также доступны графические интерфейсы, см. Следующий раздел.)
* [http://git-scm.com/ Git] (Для Git также доступны графические интерфейсы, см. Следующий раздел.)
Line 22: Line 30:
* [https://cmake.org/download/ CMake] версия 3.11.x или более новая. </br> "Подсказка:" Выбор опции ''Add CMake to the system PATH for all users'' при установке CMake сделает CMake доступным из командной строки Windows, что может быть полезно.
* [https://cmake.org/download/ CMake] версия 3.11.x или более новая. </br> "Подсказка:" Выбор опции ''Add CMake to the system PATH for all users'' при установке CMake сделает CMake доступным из командной строки Windows, что может быть полезно.


<div class="mw-translate-fuzzy">
* LibPack (так называемый FreeCADLibs). Это единый пакет, содержащий все библиотеки, необходимые для компиляции FreeCAD в Windows. Загрузите версию LibPack, соответствующую версии FreeCAD, которую вы хотите скомпилировать. Чтобы скомпилировать FreeCAD 0.19 или последнюю версию разработки 0.20, загрузите [https://github.com/apeltauer/FreeCAD/releases/tag/LibPack_12.5.2 LibPack для 0.19/0.20] (только 64-разрядная версия). Извлеките пакет LibPack в удобное место. (Если ваш компьютер не распознает расширение .7z, вам следует установить программу [https://www.7-zip.org 7-zip].) </br> "Примечание": Настоятельно рекомендуется компилировать FreeCAD с версией компилятора, для которой предназначен LibPack. Например, вы можете столкнуться с проблемами при компиляции FreeCAD 0.19 с использованием MSVC 15, поскольку LibPack для 0.19 предназначен для сборки с MSVC 17.
* LibPack (так называемый FreeCADLibs). Это единый пакет, содержащий все библиотеки, необходимые для компиляции FreeCAD в Windows. Загрузите версию LibPack, соответствующую версии FreeCAD, которую вы хотите скомпилировать. Чтобы скомпилировать FreeCAD 0.19 или последнюю версию разработки 0.20, загрузите [https://github.com/apeltauer/FreeCAD/releases/tag/LibPack_12.5.2 LibPack для 0.19/0.20] (только 64-разрядная версия). Извлеките пакет LibPack в удобное место. (Если ваш компьютер не распознает расширение .7z, вам следует установить программу [https://www.7-zip.org 7-zip].) </br> "Примечание": Настоятельно рекомендуется компилировать FreeCAD с версией компилятора, для которой предназначен LibPack. Например, вы можете столкнуться с проблемами при компиляции FreeCAD 0.19 с использованием MSVC 15, поскольку LibPack для 0.19 предназначен для сборки с MSVC 17.
</div>


<span id="Optional_programs"></span>
===Опционные программы===
===Опционные программы===


* Графический интерфейс для Git. Существует несколько доступных интерфейсов, см. [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs this list]. Основное преимущество интерфейса заключается в том, что вам не нужно изучать команды Git, чтобы получить исходный код FreeCAD или отправлять исправления в репозиторий FreeCAD на GitHub.
* Графический интерфейс для Git. Существует несколько доступных интерфейсов, см. [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs this list]. Основное преимущество интерфейса заключается в том, что вам не нужно изучать команды Git, чтобы получить исходный код FreeCAD или отправлять исправления в репозиторий FreeCAD на GitHub.


Ниже мы опишем обработку исходного кода с использованием интерфейса [https://tortoisegit.org/ TortoiseGit]. Этот интерфейс интегрируется непосредственно в проводник файлов Windows и имеет большое сообщество пользователей, которые могут получить помощь в случае возникновения проблем.
Ниже мы опишем обработку исходного кода с использованием интерфейса [https://tortoisegit.org/ TortoiseGit]. Этот интерфейс интегрируется непосредственно в проводник файлов Windows и имеет большое сообщество пользователей, которые могут получить помощь в случае возникновения проблем.


* [http://sourceforge.net/projects/nsis/ NSIS] используется для создания установщика Windows FreeCAD.
* [http://sourceforge.net/projects/nsis/ NSIS] используется для создания установщика Windows FreeCAD.


<span id="Source_code"></span>
=== Исходный код ===
=== Исходный код ===


Теперь вы можете получить исходный код FreeCAD:
Теперь вы можете получить исходный код FreeCAD:


<span id="Using_a_frontend"></span>
====Использование интерфейса====
====Использование интерфейса====


Line 49: Line 62:
Последний исходный код будет загружен из репозитория FreeCAD Git, и Git будет отслеживать папку.
Последний исходный код будет загружен из репозитория FreeCAD Git, и Git будет отслеживать папку.


<span id="Using_the_command_line"></span>
====Использование командной строки====
====Использование командной строки====


Line 57: Line 71:
}}
}}


<span id="Compiler"></span>
===Компилятор===
===Компилятор===


Line 69: Line 84:
В качестве бесплатной и альтернативной среды разработки с открытым исходным кодом вы можете использовать [https://www.kdevelop.org/download KDevelop]. Вы можете использовать KDevelop для изменения и написания кода на C++, но для компиляции необходимо использовать командную строку.
В качестве бесплатной и альтернативной среды разработки с открытым исходным кодом вы можете использовать [https://www.kdevelop.org/download KDevelop]. Вы можете использовать KDevelop для изменения и написания кода на C++, но для компиляции необходимо использовать командную строку.


<span id="Optional_system_path_configuration"></span>
===Дополнительная конфигурация системного пути===
===Дополнительная конфигурация системного пути===


Line 89: Line 105:
# Наконец, нажмите "ОК" и закройте все диалоговые окна, также нажав "ОК".
# Наконец, нажмите "ОК" и закройте все диалоговые окна, также нажав "ОК".


<span id="Configuration"></span>
=== Конфигурация ===
=== Конфигурация ===


<div class="mw-translate-fuzzy">
Как только у вас будут все необходимые инструменты, библиотеки и исходный код FreeCAD, вы будете готовы приступить к процессу настройки и компиляции. Этот процесс будет проходить в пять этапов:
Как только у вас будут все необходимые инструменты, библиотеки и исходный код FreeCAD, вы будете готовы приступить к процессу настройки и компиляции. Этот процесс будет проходить в пять этапов:
# Запустите CMake один раз, чтобы проверить вашу систему и начать процесс настройки (это сообщит о том, что она не удалась).
# Запустите CMake один раз, чтобы проверить вашу систему и начать процесс настройки (это сообщит о том, что она не удалась).
Line 97: Line 115:
# Используйте CMake для создания системы сборки Visual Studio.
# Используйте CMake для создания системы сборки Visual Studio.
# Используйте Visual Studio для создания FreeCAD.
# Используйте Visual Studio для создания FreeCAD.
</div>


===CMake===
===CMake===


<div class="mw-translate-fuzzy">
Во-первых, настройте среду сборки с помощью CMake:
Во-первых, настройте среду сборки с помощью CMake:
# Откройте графический интерфейс CMake
# Откройте графический интерфейс CMake
Line 106: Line 126:
# Нажмите кнопку "Configure".
# Нажмите кнопку "Configure".
# В появившемся диалоговом окне укажите генератор, который вы хотите использовать: в большинстве случаев вы будете использовать значения по умолчанию в этом диалоговом окне. Для стандартной MS Visual Studio используйте "Visual Studio xx 2yyy", где xx-версия компилятора, а 2yyy-год его выпуска. Рекомендуется использовать опцию по умолчанию "Use default native compilers".
# В появившемся диалоговом окне укажите генератор, который вы хотите использовать: в большинстве случаев вы будете использовать значения по умолчанию в этом диалоговом окне. Для стандартной MS Visual Studio используйте "Visual Studio xx 2yyy", где xx-версия компилятора, а 2yyy-год его выпуска. Рекомендуется использовать опцию по умолчанию "Use default native compilers".
</div>


""Примечание:"" Важно указать правильный вариант бита. Если у вас есть 64-разрядный вариант LibPack, вы также должны использовать компилятор x64.
'''Примечание:''' Важно указать правильный вариант разрядности. Если у вас есть 64-разрядный вариант LibPack, вы также должны использовать компилятор x64.


Это приведет к началу настройки и "завершится ошибкой" из-за отсутствия настроек. Это нормально, вы еще не указали местоположение пакета LibPack. Однако могут возникнуть и другие сбои, которые потребуют некоторых дальнейших действий с вашей стороны.
Это приведет к началу настройки и "завершится ошибкой" из-за отсутствия настроек. Это нормально, вы еще не указали местоположение пакета LibPack. Однако могут возникнуть и другие сбои, которые потребуют некоторых дальнейших действий с вашей стороны.


<div class="mw-translate-fuzzy">
Если произойдет сбой с сообщением о том, что Visual Studio не найдена, поддержка CMake в MSVC еще не установлена. Для этого:
Если произойдет сбой с сообщением о том, что Visual Studio не найдена, поддержка CMake в MSVC еще не установлена. Для этого:
# Откройте среду разработки MSVC
# Откройте среду разработки MSVC
Line 117: Line 139:
# На правой стороне теперь вы должны видеть, что будет установлен компонент "Visual C++ tools for CMake".
# На правой стороне теперь вы должны видеть, что будет установлен компонент "Visual C++ tools for CMake".
# Установите его.
# Установите его.
</div>


<div class="mw-translate-fuzzy">
Если он завершится ошибкой с сообщением о неверной версии Python или отсутствующем Python, то:
Если он завершится ошибкой с сообщением о неверной версии Python или отсутствующем Python, то:
# Используйте поле "Search:" в CMake для поиска строки "Python".
# Используйте поле "Search:" в CMake для поиска строки "Python".
# Если вы видите там путь, подобный "C:/Program Files/Python38/python.exe", CMake распознал Python, который уже установлен на вашем компьютере, но эта версия несовместима с LibPack. Поскольку LibPack включает совместимую версию Python, измените следующие параметры Python в CMake в соответствии с его путями (при условии, что LibPack находится в папке "D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17"):
# Если вы видите там путь, подобный "C:/Program Files/Python38/python.exe", CMake распознал Python, который уже установлен на вашем компьютере, но эта версия несовместима с LibPack. Поскольку LibPack включает совместимую версию Python, измените следующие параметры Python в CMake в соответствии с его путями (при условии, что LibPack находится в папке "D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17"):
[[File:CMake_Python_settings.png]]
[[File:CMake_Python_settings.png]]
</div>


<div class="mw-translate-fuzzy">
Если нет ошибки в Visual Studio или Python, все в порядке, но CMake еще не знает всех необходимых настроек. Поэтому сейчас:
Если нет ошибки в Visual Studio или Python, все в порядке, но CMake еще не знает всех необходимых настроек. Поэтому сейчас:
# Найдите в CMake переменную "FREECAD_LIBPACK_DIR" и укажите местоположение папки LibPack, которую вы загрузили ранее.
# Найдите в CMake переменную "FREECAD_LIBPACK_DIR" и укажите местоположение папки LibPack, которую вы загрузили ранее.
# Только если сборка FreeCAD 0.19, найдите переменную "'BUILD_QT5" и включите эту опцию.
# Только если сборка FreeCAD 0.19, найдите переменную "'BUILD_QT5" и включите эту опцию.
# Нажмите "Configure" еще раз.
# Нажмите "Configure" еще раз.
</div>


Теперь ошибок быть не должно. Если вы по-прежнему сталкиваетесь с ошибками, которые не можете диагностировать, посетите [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] на веб-сайте форума FreeCAD. Если CMake прошел правильно, нажмите на кнопку "Generate". После этого вы можете закрыть CMake и начать компиляцию FreeCAD с помощью Visual Studio. Однако для первой компиляции держите его открытым на случай, если вам захочется или потребуется изменить некоторые параметры процесса сборки.
Теперь ошибок быть не должно. Если вы по-прежнему сталкиваетесь с ошибками, которые не можете диагностировать, посетите [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] на веб-сайте форума FreeCAD. Если CMake прошел правильно, нажмите на кнопку "Generate". После этого вы можете закрыть CMake и начать компиляцию FreeCAD с помощью Visual Studio. Однако для первой компиляции держите его открытым на случай, если вам захочется или потребуется изменить некоторые параметры процесса сборки.


<span id="Options_for_the_build_process"></span>
'''Note:''' When compiling FreeCAD 0.19, the CMake variable '''BUILD_ENABLE_CXX_STD''' will be set to '''C++14''' while for FreeCAD 0.20 it will be set to '''C++17'''. This is because FreeCAD 0.20 requires at least the C++ language standard version 17. So when you compiled the last time FreeCAD 0.19 it is necessary to re-run CMake for FreeCAD 0.20 to change the C++ language standard.

=== Параметры процесса сборки ===
=== Параметры процесса сборки ===


Line 138: Line 164:
Вот описание некоторых из этих переменных:
Вот описание некоторых из этих переменных:


<div class="mw-translate-fuzzy">
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|-
|-
! Variable name !! Description !! Default
! Variable name !! Description !! Default
|-
|-
| BUILD_XXX || Build FreeCAD with the component XXX. If you don't want/need to compile e.g. the workbench ''OpenSCAD'', disable the variable ''BUILD_OPENSCAD''. FreeCAD will then not have this workbench.
| BUILD_XXX || Создайте FreeCAD с компонентом XXX. Если вы не хотите/не нуждаетесь в компиляции, например, рабочего стола "OpenSCAD", отключите переменную "BUILD_OPENSCAD". Тогда у FreeCAD не будет этого верстака.
""Примечание: "" Некоторые компоненты требуются для других компонентов. Если вы, например, снимите флажок "BUILD_ROBOT", CMake сообщит вам, что компонент "Путь" не может быть правильно скомпилирован. Поэтому проверьте вывод CMake после изменения параметра BUILD_XXX!
'''Note:''' Some components are required for other components. If you for example uncheck ''BUILD_ROBOT'' CMake will inform you that then the component ''Path'' cannot be compiled correctly. Therefore check the CMake output after you changed a BUILD_XXX option!
|| depends
|| depends
|-
|-
| BUILD_ENABLE_CXX_STD || The version of the C++ language standard. '''C++14''' is the highest possible for FreeCAD 0.19 while at least '''C++17''' is required for FreeCAC 0.20. See also the note in section [[#Release_Build|Building with Visual Studio 15 (2017) and 16 (2019)]]
| BUILD_ENABLE_CXX_STD || Версия стандарта языка C++. "C++14" является максимально возможным для FreeCAD 0.19, в то время как для FreeCAC 0.20 требуется как минимум "C++17". См. Также примечание в разделе [[#Release_Build|Building with Visual Studio 15 (2017) and 16 (2019)]]
|| depends
|| depends
|-
|-
| CMAKE_INSTALL_PREFIX || The output folder when building the target ''INSTALL'', see also section [[#Running and installing FreeCAD|Running and installing FreeCAD]] || Windows' default program installation folder
| CMAKE_INSTALL_PREFIX || Выходная папка при создании целевой "INSTALL" см. также раздел [[#Running and installing FreeCAD|Running and installing FreeCAD]] || Windows' default program installation folder
|-
|-
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Copies depending libraries needed to execute the FreeCAD.exe to the build folder. See also section [[#Running and installing FreeCAD|Running and installing FreeCAD]].</br> '''Note:''' the options FREECAD_COPY_XXX only appear if the libraries were not already copied. So when you change to another LibPack version, it is important to delete all folders in your build folder, except of the LibPack folder. In CMake delete the cache and start as if you compile for the first time and you will get the FREECAD_COPY_XXX options. || OFF
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Копии библиотек, необходимых для выполнения FreeCAD.exe в папку сборки. См. также раздел [[#Running and installing FreeCAD|Running and installing FreeCAD]].</br> "Примечание:" параметры FREECAD_COPY_XXX отображаются только в том случае, если библиотеки еще не были скопированы. Поэтому при переходе на другую версию LibPack важно удалить все папки в папке сборки, кроме папки LibPack. В CMake удалите кэш и начните так, как будто вы компилируете в первый раз, и вы получите параметры FREECAD_COPY_XXX options. || OFF
|-
|-
| FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Copies the LibPack binaries needed to execute the FreeCAD.exe to the build folder. See also section [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF
| FREECAD_COPY_PLUGINS_BIN_TO_BUILD|| Copies Qt's plugin files needed to execute the FreeCAD.exe to the build folder. См. также раздел [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF
|-
|-
| FREECAD_COPY_PLUGINS_BIN_TO_BUILD|| Copies Qt's plugin files needed to execute the FreeCAD.exe to the build folder. See also section [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF
|-
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || ON
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || ON
|-
|-
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD's source code folder
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD's source code folder
|-
|-
| FREECAD_RELEASE_PDB || Create debug libraries also for release builds || ON
| FREECAD_RELEASE_PDB || Create debug libraries also for release builds || ON
|}
|}
</div>


<span id="Building_FreeCAD"></span>
== Сборка FreeCAD ==
== Сборка FreeCAD ==


<div class="mw-translate-fuzzy">
Depending on your compiler, the process for building FreeCAD will be slightly different. In the following sections you known workflows are described.
В зависимости от вашего компилятора процесс создания FreeCAD будет немного отличаться. В следующих разделах описаны известные вам рабочие процессы.
If you are building with Qt Creator, jump to [[#Building with Qt Creator|Building with Qt Creator]], otherwise proceed directly:
Если вы создаете с помощью Qt Creator, перейдите к [[#Building with Qt Creator|Building with Qt Creator]], в противном случае продолжайте напрямую:
</div>


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Building_with_Visual_Studio_15_(2017)_or_newer"></span>
<div class="mw-translate-fuzzy">
=== Сборка в Visual Studio 15 (2017) и 16 (2019) ===
=== Сборка в Visual Studio 15 (2017) и 16 (2019) ===
</div>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<span id="Release_Build"></span>
==== Сборка релиза ====
==== Сборка релиза ====


# Запустите среду разработки Visual Studio. Это можно сделать либо нажатием кнопки "Open Project" в графическом интерфейсе CMake, либо двойным щелчком по файлу "FreeCAD.sln", который вы найдете в папке сборки.
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.
# На панели инструментов среды разработки MSVC убедитесь, что вы используете для первой компиляции "Release".
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Release''.
# Есть окно под названием "Solution Explorer". В нем перечислены все возможные цели компиляции. Чтобы начать полную компиляцию, щелкните правой кнопкой мыши на целевом объекте "ALL_BUILD", а затем выберите "Build".
# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build'''.
Теперь это займет довольно много времени.
This will now take quite a long time.


<div class="mw-translate-fuzzy">
Чтобы скомпилировать готовый к использованию FreeCAD, скомпилируйте целевую "INSTALL", см. раздел [[#Running and installing FreeCAD|Running and installing FreeCAD]].
Чтобы скомпилировать готовый к использованию FreeCAD, скомпилируйте целевую "INSTALL", см. раздел [[#Running and installing FreeCAD|Running and installing FreeCAD]].
</div>


Если вы не получили никаких ошибок, значит все готов. "Поздравляю!" Теперь вы можете выйти из MSVC или оставить его открытым.
Если вы не получили никаких ошибок, значит все готов. "Поздравляю!" Теперь вы можете выйти из MSVC или оставить его открытым.


<div class="mw-translate-fuzzy">
'''Note:''' FreeCAD 0.20 requires at least the C++ language standard version 17 but the 3rd-party component ''flann'' from the LibPack is not yet ready for this. Therefore you will get compilation errors for the target ''ReverseEngineering''. To fix this, right-click on this target in the MSVC solution explorer and select in the context menu the last entry ''Properties''. In the appearing dialog change the '''C++ Language Standard''' to '''ISO C++14'''. Finally build the target '''ALL_BUILD''' again.
"Примечание:" Для FreeCAD 0.20 требуется, по крайней мере, стандартная версия языка C++ 17, но сторонний компонент "flann" из LibPack еще не готов для этого. Поэтому вы получите ошибки компиляции для целевого "обратного проектирования". Чтобы исправить это, щелкните правой кнопкой мыши на этом целевом объекте в обозревателе решений MSVC и выберите в контекстном меню последнюю запись "Properties". В появившемся диалоговом окне измените "C++ Language Standard" на "ISO C++14". Наконец, снова создайте цель "ALL_BUILD".
</div>


<span id="Debug_Build"></span>
==== Отладочная сборка ====
==== Отладочная сборка ====


Для отладочной сборки необходимо использовать Python, который входит в пакет LibPack. Чтобы гарантировать это:
For a debug build it is necessary that the Python is used that is included in the LibPack. To assure this:
# Search in the CMake GUI for "Python"
# Поиск в графическом интерфейсе CMake "Python"
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is installed on your PC and not the one of the LibPack. In this case adapt these different Python settings in CMake to this (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):
# Если вы видите там путь, подобный "C:/Program Files/Python38/python.exe", CMake распознал Python, установленный на вашем компьютере, а не тот, который входит в LibPack. В этом случае адаптируйте эти различные настройки Python в CMake к этому (при условии, что LibPack находится в папке "D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17"):
[[File:CMake_Python_settings.png]]
[[File:CMake_Python_settings.png]]


As prerequisite for the debug build, you need to do this:
Now
# Copy the content of the LibPack folder ''bind'' to the ''bin'' folder of the FreeCAD build folder (overwrite the existing files).
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Debug''.
# Copy the content of the LibPack folder ''libd'' to the ''lib'' folder of the FreeCAD build folder.

# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build''' in the context menu.
<div class="mw-translate-fuzzy">
This will now take quite a long time.
Теперь
If there were no compilation errors, you can start the debug build:
# Запустите среду разработки Visual Studio. Это можно сделать либо нажатием кнопки "Open Project" в графическом интерфейсе CMake, либо двойным щелчком по файлу "FreeCAD.sln", который вы найдете в папке сборки.
# На панели инструментов среды разработки MSVC убедитесь, что вы используете для первой компиляции "Debug".
# Есть окно под названием "Solution Explorer". В нем перечислены все возможные цели компиляции. Чтобы начать полную компиляцию, щелкните правой кнопкой мыши на целевом объекте "ALL_BUILD", а затем выберите "Build" в контекстном меню.
Теперь это займет довольно много времени.
Если ошибок компиляции не было, вы можете запустить отладочную сборку:
# Щелкните правой кнопкой мыши на целевой "FreeCADMain", а затем выберите "Set as Startup Project" в контекстном меню.
# Наконец, нажмите на панели инструментов на кнопку с зеленым треугольником под названием "Local Windows Debugger".
</div>

If there were no compilation errors, and if the '''FREECAD_COPY_*''' options mentioned in the [[#CMake|CMake Configuration step]] above were enabled, you can start the debug build:
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.
Line 212: Line 260:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Building_with_Qt_Creator_(outdated)"></span>
=== Сборка с помощью Qt Creator (устарело) ===
=== Сборка с помощью Qt Creator (устарело) ===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<span id="Installation_and_configuration_of_Qt_Creator"></span>
==== Инсталяция и настройка Qt Creator ====
==== Инсталяция и настройка Qt Creator ====


* Download and install [https://www.qt.io/offline-installers Qt Creator]
* Загрузите и установите [https://www.qt.io/offline-installers Qt Creator]
* Tools → Options → Text Editor → Behavior tab:
* Tools → Options → Text Editor → Behavior tab:
** File Encodings → Default Encodings:
** File Encodings → Default Encodings:
** Set to: '''ISO-8859-1 /...csISOLatin1''' (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)
** Установите значение: "'ISO-8859-1 /...csISOLatin1"' (Некоторые символы создают ошибки/предупреждения с помощью Qt Creator, если оставить значение UTF-8. Это, кажется, все исправляет.)
* Tools → Options → Build & Run:
* Tools → Options → Build & Run:
** CMake tab
** CMake tab
*** Fill Executable box with path to cmake.exe
*** Заполните поле Исполняемый файл путем к cmake.exe
** Kits tab
** Kits tab
*** Name: MSVC 2008
*** Name: MSVC 2008
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
*** Debugger: Auto detected...
*** Debugger: Auto detected...
*** Версия Qt: Отсутствует
*** Qt version: None
** General tab
** General tab
*** Снимите флажок: Всегда создавайте проект перед его развертыванием
*** Uncheck: Always build project before deploying it
*** Снимите флажок: Всегда развертывайте проект перед его запуском
*** Uncheck: Always deploy project before running it


<span id="Import_project_and_building"></span>
====Импорт проекта и здания====
====Импорт проекта и здания====


Line 254: Line 305:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Command_line_build"></span>
===Сборка из командной строки===
===Сборка из командной строки===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<div class="mw-translate-fuzzy">
The steps how to compile from the command line depends on the compiler. For MSVC 2017 the steps are:
Шаги по компиляции из командной строки зависят от компилятора. Для MSVC 2017 следующие шаги:
# In Windows' start menu go to {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} and choose '''Developer Command Prompt for VS 2017'''
# В меню "Пуск" Windows перейдите в {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} и выберите ""Командная строка разработчика для VS 2017""
# Change to your build folder.
# Перейдите в папку сборки.
# Execute the command
# Выполните команду
</div>


{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
Line 269: Line 323:
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}


<div class="mw-translate-fuzzy">
Эти шаги также могут быть автоматизированы. Вот, например, решение для MSVC 2017:
Эти шаги также могут быть автоматизированы. Вот, например, решение для MSVC 2017:
# Скачать скрипт [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
# Скачать скрипт [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
Line 274: Line 329:
# В проводнике файлов Windows Shift+Right-click на папке сборки и используйте из контекстного меню "Command prompt here".
# В проводнике файлов Windows Shift+Right-click на папке сборки и используйте из контекстного меню "Command prompt here".
# Выполните команду
# Выполните команду
</div>


{{Code|code=compile-FC install}}
{{Code|code=compile-FC install}}


Вместо вызова "'compile-FC" с опцией "install" вы также можете использовать "debug" или "release".:
Вместо вызова '''compile-FC''' с опцией ''install'' вы также можете использовать ''debug'' или ''release''.:


''debug'' &nbsp; - компиляция FreeCAD в конфигурации отладки
''debug'' &nbsp; - компиляция FreeCAD в конфигурации отладки


"release" - компиляция FreeCAD в конфигурации выпуска
''release'' - компиляция FreeCAD в конфигурации выпуска


''install'' &nbsp;&nbsp; - скомпилируйте FreeCAD в конфигурации выпуска и создайте установку установки
''install'' &nbsp;&nbsp; - скомпилируйте FreeCAD в конфигурации выпуска и создайте установку установки
Line 288: Line 344:
</div>
</div>


<span id="Running_and_installing_FreeCAD"></span>
==Запуск и установка FreeCAD==
==Запуск и установка FreeCAD==


Line 298: Line 355:
Метод 2 является более простым, поскольку он автоматически гарантирует, что все библиотеки, необходимые для запуска FreeCAD.exe находятся в нужной папке. В FreeCAD.exe и библиотеки будут выведены в папку, указанную вами в переменной CMake "CMAKE_INSTALL_PREFIX".
Метод 2 является более простым, поскольку он автоматически гарантирует, что все библиотеки, необходимые для запуска FreeCAD.exe находятся в нужной папке. В FreeCAD.exe и библиотеки будут выведены в папку, указанную вами в переменной CMake "CMAKE_INSTALL_PREFIX".


<div class="mw-translate-fuzzy">
For Method 1 you need to put the libraries into the ''bin'' folder of your build folder (where the FreeCAD.exe is). This can easily be done:
Для метода 1 вам нужно поместить библиотеки в папку "bin" вашей папки сборки (где FreeCAD.exe есть). Это можно легко сделать:
# Open the CMake GUI.
# Откройте графический интерфейс CMake.
# Search there for the variable option ''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'' and check it. If there is no such option, the libraries were already copied, see the [[#Options_for_the_build_process|description of the options]].
# Найдите там параметр переменной "FREECAD_COPY_DEPEND_DIRS_TO_BUILD" и проверьте его. Если такой опции нет, библиотеки уже были скопированы, см. [[#Options_for_the_build_process|description of the options]].
# Search there for the variable option ''FREECAD_COPY_LIBPACK_BIN_TO_BUILD'' and check it.
# Найдите там параметр переменной "FREECAD_COPY_LIBPACK_BIN_TO_BUILD" и проверьте его.
# Search there for the variable option ''FREECAD_COPY_PLUGINS_BIN_TO_BUILD'' and check it.
# Найдите там параметр переменной "FREECAD_COPY_PLUGINS_BIN_TO_BUILD" и проверьте его.
# Click on '''Configure'''. At the end of the configuration CMake will automatically copy the necessary libraries from the LibPack folder.
# Нажмите на кнопку "Configure". В конце настройки CMake автоматически скопирует необходимые библиотеки из папки LibPack.
</div>

===Troubleshooting===

When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:

* Download the latest release of the program '''Dependencies''': https://github.com/lucasg/Dependencies/releases (choose the file ''Dependencies_x64_Release.zip'')
* In the FreeCAD [[Python console]] execute these commands:
<nowiki>import os
os.system(r"~\DependenciesGui.exe")</nowiki>
'''Note''': Instead of the ~ you must specify the full path to the ''DependenciesGui.exe'' on your system.
* Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.


<span id="Updating_the_build"></span>
==Обновление сборки==
==Обновление сборки==


Line 311: Line 382:
# Перекомпиляция
# Перекомпиляция


<span id="Updating_the_source_code"></span>
== Обновление исходного кода ==
== Обновление исходного кода ==


<span id="Using_a_frontend"></span>
====Использование интерфейса====
====Использование интерфейса====


When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:
При использовании [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:
# Щелкните правой кнопкой мыши папку с исходным кодом FreeCAD в проводнике файлов Windows и выберите в контекстном меню ""Pull"".
# Right-click on your FreeCAD source code folder in the Windows file explorer and select in the context menu '''Pull'''.
# A dialog will appear. Select there what development branch you want to get. '''master''' is the main branch. Therefore use this unless you want to compile a special new feature from a branch that has not yet been merged to ''master''. (For more about Git branches, see [[Source_code_management#Git_development_process|Git development process]].)
# Появится диалоговое окно. Выберите там, какую ветвь разработки вы хотите получить. "master" - это основная ветвь. Поэтому используйте это, если вы не хотите скомпилировать специальную новую функцию из ветви, которая еще не была объединена в "master". (Для получения дополнительной информации о ветвях Git см. [[Source_code_management#Git_development_process|Git development process]].)


Наконец, нажмите "ОК".
Наконец, нажмите "ОК".


<span id="Using_the_command_line"></span>
====Использование командной строки====
====Использование командной строки====


Line 331: Line 405:
где "master" - название основной ветви разработки. Если вы хотите получить код из другой ветви, используйте ее имя вместо "master".
где "master" - название основной ветви разработки. Если вы хотите получить код из другой ветви, используйте ее имя вместо "master".


<span id="Recompilation"></span>
====Сборник====
====Сборник====


<div class="mw-translate-fuzzy">
# Откройте среду разработки MSVC, дважды щелкнув файл "FreeCAD.sln" или файл "ALL_BUILD.vcxproj" в папке сборки.
# Откройте среду разработки MSVC, дважды щелкнув файл "FreeCAD.sln" или файл "ALL_BUILD.vcxproj" в папке сборки.
# Перейдите к шагу 2 из раздела [[#Building_with_Visual_Studio_15_2017|Building with Visual Studio 15 2017]].
# Перейдите к шагу 2 из раздела [[#Building_with_Visual_Studio_15_2017|Building with Visual Studio 15 2017]].
</div>

==Updating the LibPack==

If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version [https://github.com/FreeCAD/FreeCAD-LibPack/releases/ here].

To update your LibPack the following recipe is best practice:
# Delete the ''bin'' folder in your build folder.
# Switch to your local LibPack folder and delete everything there.
# Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.
# Open CMake and there press the button '''Configure''' and then the button '''Generate'''. This recreates the ''bin'' folder you just deleted and also copies the new LibPack files into it.
# In CMake click the button '''Open Project''' and the MSVC IDE will open.
# In the MSVC IDE build the target ''INSTALL''.


<span id="Tools"></span>
==Инструменты==
==Инструменты==


Для того, чтобы включиться к разработке FreeCAD, вы должны скомпилировать и установить следующие инструменты:
Для того, чтобы включиться к разработке FreeCAD, вы должны скомпилировать и установить следующие инструменты:


<span id="Qt_Designer_plugin"></span>
==== Плагин Qt designer ====
==== Плагин Qt designer ====


FreeCAD использует [https://en.wikipedia.org/wiki/Qt_(software) Qt] в качестве инструментария для его пользовательского интерфейса. Все диалоговые окна настраиваются в UI-файлах, которые можно редактировать с помощью программы [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer], который является частью любой установки Qt, а также включен в пакет LibPack. FreeCAD имеет свой собственный набор виджетов Qt для предоставления специальных функций, таких как добавление единицы измерения в поля ввода и настройка свойств настроек.
FreeCAD использует [https://en.wikipedia.org/wiki/Qt_(software) Qt] в качестве инструментария для его пользовательского интерфейса. Все диалоговые окна настраиваются в UI-файлах, которые можно редактировать с помощью программы [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer], который является частью любой установки Qt, а также включен в пакет LibPack. FreeCAD имеет свой собственный набор виджетов Qt для предоставления специальных функций, таких как добавление единицы измерения в поля ввода и настройка свойств настроек.


<span id="Compilation"></span>
=== Установка ===
====Сборник====


<div class="mw-translate-fuzzy">
Чтобы Qt Designer знал о виджетах FreeCAD, вы должны
DLL не может быть загружена как плагин, если она была скомпилирована с использованием другой версии Qt, чем тот, на котором основан ваш Qt Designer/Qt Creator. В этом случае вы должны скомпилировать DLL самостоятельно. Это делается следующим образом:
</div>


* In the CMake options (see [[Compile_on_Windows#Options_for_the_build_process|this section above]]) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
# Download [https://forum.freecadweb.org/download/file.php?id=124239 this ZIP] file. (Compiled using Qt 5.12, see [[#Compilation|below]].)
* open MSVC and build the target '''FreeCAD_widgets'''
# Extract the DLL file in the ZIP and copy it
* If you use the LibPack: to the folder</br>''~\FreeCADLibs_12.5.2_x64_VC17\bin\designer''</br>Since there will only be a ''bin'' folder and you must first create the ''designer'' subfolder.
* If you have a full Qt installation: you can choose between the folder</br>''C:\Qt\5.15.2\msvc2019_64\plugins\designer''</br>or</br>''C:\Qt\5.15.2\msvc2019_64\bin\designer'' (you must first create the ''designer'' subfolder.)</br>(adapt the paths to your installation!).


As result you will get the plugin file '''FreeCAD_widgets.dll'' in the folder</br>''~\src\Tools\plugins\widget\Release''
(Re)Start Qt Designer and check its menu {{MenuCommand|Help → Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.


<span id="Installation"></span>
=== Установка ===


<div class="mw-translate-fuzzy">
If you prefer using [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] instead of Qt Designer, the DLL must be placed in this folder:</br>''C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer''</br>(Re)Start Qt Creator, switch to the mode '''Design''' and then check the menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.
# Скачать [https://forum.freecadweb.org/download/file.php?id=124239 this ZIP] файл. (Скомпилирован с использованием Qt 5.12, см. [[#Compilation|below]].)
# Извлеките DLL-файл в ZIP-файле и скопируйте его
* Если вы используете LibPack: в папку</br>"~\FreeCADLibs_12.5.2_x64_VC17\bin\designer"</br>, так как там будет только папка "bin", и вы должны сначала создать подпапку "конструктор".
* Если у вас полная установка Qt: вы можете выбрать между folder</br>"C:\Qt\5.15.2\msvc2019_64\plugins\designer"</br>or</br>"C:\Qt\5.15.2\msvc2019_64\bin\designer" (сначала вы должны создать подпапку "конструктор".)</br>(адаптируйте пути к вашей установке!).
</div>


<div class="mw-translate-fuzzy">
====Сборник====
(Повторно)Запустите Qt Designer и проверьте его меню {{MenuCommand|Help → Plugins}}. Если плагин "' FreeCAD_widgets.dll"' указана как загружаемая, теперь вы можете создавать и изменять файлы .ui FreeCAD. Если нет, вы должны [[#Compilation|compile]] создать библиотеку DLL самостоятельно.
</div>


<div class="mw-translate-fuzzy">
The DLL cannot be loaded as plugin if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. In this case you must compile the DLL by yourself. This is done the following way:
Если вы предпочитаете использовать [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] вместо Qt Designer библиотека DLL должна быть помещена в эту папку:</br>"C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer"</br>(Повторно)Запустите Qt Creator, переключитесь в режим "Design", а затем проверьте меню {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. Если плагин "' FreeCAD_widgets.dll"' указана как загружаемая, теперь вы можете создавать и изменять файлы .ui FreeCAD. Если нет, вы должны [[#Compilation|compile]] создать библиотеку DLL самостоятельно.

</div>
# Change to the FreeCAD source folder</br>''~\src\Tools\plugins\widget''
# Open a MSVC x64 command prompt using the Windows Start menu and change within it to the above folder. It is important that it is the x64 version of the MSVC command prompt!
# Execute this command {{Code|code=qmake -t vclib plugin.pro}}If qmake could not be found, use the full path to it, e.g. for the LibPack it should be this one (adapt it to your installation):</br>''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17\bin\qmake -t vclib plugin.pro''</br>for a full Qt installation it is</br>''C:\Qt\5.15.2\msvc2019_64\bin\qmake -t vclib plugin.pro''</br> (adapt the paths to your installation!)
# The call of ''qmake'' created the file '''FreeCAD_widgets.vcxproj''' in the folder ''~\src\Tools\plugins\widget''. Double-click on it and the MSVC IDE will open.
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.
# There is a window called ''Solution Explorer''. Right-click there on '''FreeCAD_widgets''' and then choose '''Build'''.
# As result you should now have a '''FreeCAD_widgets.dll''' in the folder ''~\src\Tools\plugins\widget\release'' that you can install as plugin as described above.


<span id="Thumbnail_Provider"></span>
===Поставщик миниатюр===
===Поставщик миниатюр===


FreeCAD имеет функцию предварительного просмотра миниатюр для файлов *.FCStd. Это означает, что в проводнике файлов Windows *.FCStd файлы отображаются со снимком экрана модели, которую он содержит. Чтобы предоставить эту функцию, FreeCAD должен иметь файл "'FCStdThumbnail.dll"" где установлено в Windows.
FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file '''FCStdThumbnail.dll''' installed to Windows.


<span id="Installation"></span>
=== Установка ===
=== Установка ===


Библиотека DLL устанавливается таким образом:
The DLL is installed this way:
# Download [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] and extract it.
# Скачать [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] и извлеките его.
# Откройте командную строку Windows с правами администратора (эти права являются обязательным требованием).
# Open a Windows command prompt with administrator privileges (these privileges are a requirement).
# Перейдите в папку, в которой находится библиотека DLL.
# Change to the folder where the DLL is.
# Execute this command {{Code|code=regsvr32 FCStdThumbnail.dll}}
# Выполните эту команду {{Code|code=regsvr32 FCStdThumbnail.dll}}


So check if it works, assure that in FreeCAD the preferences option '''[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]''' is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.
Поэтому проверьте, работает ли это, убедитесь, что в FreeCAD включена опция настроек "[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]"" и сохраните модель. Затем просмотрите в проводнике Windows папку сохраненной модели, используя представление символов. Теперь вы должны увидеть снимок экрана модели в представлении папок.


<span id="Compilation"></span>
====Сборник====
====Сборник====


To compile the FCStdThumbnail.dll
Для компиляции FCStdThumbnail.dll
# Change to the FreeCAD source folder</br>''~\src\Tools\thumbs\ThumbnailProvider''
# Перейдите в исходную папку FreeCAD</br>"~\src\Tools\thumbs\ThumbnailProvider"
# Откройте графический интерфейс CMake
# Open the CMake GUI
# Укажите там в качестве исходной папки ту, в которой вы находитесь в данный момент.
# Specify there as source folder the one you are currently in.
# Используйте ту же папку, что и папка сборки.
# Use the same folder as build folder.
# Click '''Configure'''
# Нажмите "Configure".
# В появившемся диалоговом окне укажите генератор в соответствии с тем, который вы хотите использовать. Для стандартной MS Visual Studio используйте "Visual Studio xx 2yyy", где xx-версия компилятора, а 2yyy-год его выпуска. Рекомендуется использовать опцию по умолчанию "Использовать собственные компиляторы по умолчанию".</br>"Примечание:" Важно указать правильный вариант бита. Если у вас 64-битный вариант LibPack, вы также должны использовать компилятор x64.
# In the appearing dialog, specify the generator according to the one you want to use. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.</br>'''Note:''' It is important to specify the correct bit variant. If you have the 64bit variant of LibPack you must also use the x64 compiler.
# Click on '''Generate'''.
# Нажмите на кнопку "Generate".
# You should now have the file '''ALL_BUILD.vcxproj''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider''. Double-click on it and the MSVC IDE will open.
# Теперь у вас должен быть файл "ALL_BUILD.vcxproj" в папке "~\src\Tools\thumbs\ThumbnailProvider". Дважды щелкните по нему, и откроется среда разработки MSVC.
# На панели инструментов среды разработки MSVC убедитесь, что вы используете целевой объект компиляции "Release".
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.
# There is a window called ''Solution Explorer''. Right-click there on '''ALL_BUILD''' and then choose '''Build'''.
# Есть окно под названием "Solution Explorer". Щелкните правой кнопкой мыши на "ALL_BUILD", а затем выберите "Build".
# As result you should now have a '''FCStdThumbnail.dll''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider\release'' that you can install as described above.
# В результате у вас теперь должно быть "'FCStdThumbnail.dll"' в папке "~\src\Tools\thumbs\ThumbnailProvider\release", который вы можете установить, как описано выше.



<span id="Compiling_Open_Cascade"></span>
<div class="mw-translate-fuzzy">
== Компиляция OpenCascade ==
== Компиляция OpenCascade ==
</div>


<div class="mw-translate-fuzzy">
The standard Libpack comes with a version of OpenCASCADE that is suitable for general use. However, under some circumstances you may wish to compile against an alternate version of OpenCASCADE, such as one of their official releases, or a patched fork. Note that there is no guarantee that FreeCAD will work with all versions of OpenCASCADE, and using a non-Libpack version is for advanced users only. Note also that if you are using the Netgen library, it uses OpenCASCADE for some of its functionality and must be compiled against the same version of OpenCASCADE that you use when compiling FreeCAD.
Стандартный пакет Libpack поставляется с версией OpenCascade, подходящей для общего использования. Однако при некоторых обстоятельствах вы можете захотеть скомпилировать с альтернативной версией OpenCascade, такой как один из их официальных релизов или исправленная ветвь. Обратите внимание, что нет никакой гарантии, что FreeCAD будет работать со всеми версиями OpenCascade, и использование версии, отличной от Libpack, предназначено только для продвинутых пользователей. Обратите также внимание, что если вы используете библиотеку Netgen, она использует OpenCascade для некоторых своих функций и должна быть скомпилирована с той же версией OpenCascade, которую вы используете при компиляции FreeCAD.
</div>


When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.
The process for building a custom version of OpenCASCADE is similar to that for FreeCAD, and can make use of the FreeCAD Libpack that you have already downloaded to provide the third-party dependencies it needs (Freetype and Tcl/Tk).


<div class="mw-translate-fuzzy">
First obtain the OpenCASCADE source code, either directly from the release page at [https://old.opencascade.com/content/latest-release OpenCASCADE.org], via [https://git.dev.opencascade.org/repos/occt.git git], or by cloning someone else's fork, such as [https://gitlab.com/blobfish/occt the "blobfish" fork] maintained by FreeCAD forum member [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].
Сначала получите исходный код OpenCascade либо непосредственно со страницы выпуска по адресу [https://old.opencascade.com/content/latest-release OpenCASCADE.org], через [https://git.dev.opencascade.org/repos/occt.git git], или путем клонирования чужой вилки, например [https://gitlab.com/blobfish/occt вилка "blobfish"] поддерживается участником форума FreeCAD [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].
</div>


<div class="mw-translate-fuzzy">
Next, use CMake to configure the build system in a similar manner to building FreeCAD. Notable CMake options for OpenCASCADE are:
Затем используйте CMake для настройки системы сборки аналогично созданию FreeCAD. Примечательными вариантами CMake для OpenCascade являются:
* '''3RDPARTY_DIR''' - The location of your thrid-party libraries, typically set to your FreeCAD Libpack directory
* '''3RDPARTY_DIR''' - Место расположения ваших сторонних библиотек, обычно заданное в каталоге FreeCAD Libpack
* '''INSTALL_DIR''' - Where to install the finished libraries. A good practice is to use an isolated directory on your system, rather than installing globally, or overwriting the Libpack's version.
* '''INSTALL_DIR''' - Где устанавливают готовые библиотеки. Рекомендуется использовать изолированный каталог в вашей системе, а не устанавливать его глобально или перезаписывать версию Libpack.
</div>


* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
Наконец, откройте проект в Visual Studio и создайте ALL_BUILD, а затем УСТАНОВИТЕ целевые объекты.
* Repeat building the two targets in the '''Debug''' mode.


To build FreeCAD using the self-compiled Open Cascade, you must do the following:
Once you have generated the appropriate DLLs for OpenCASCADE (there are many of them), you will need to rebuild FreeCAD. Open CMake and set up the source and build directories of a FreeCAD build as directed above. It is generally a good idea to use a new build directory for this alternate version of OpenCASCADE so that it is easy to switch back to your old version of FreeCAD if something goes wrong, and to set up an install directory so you can ensure the correct libraries are in place. In addition to the CMake variables discussed above, set the OpenCASCADE_DIR variable to the location of the cmake folder containing your OpenCASCADE build information. For example:
* Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
CMAKE_INSTALL_PREFIX C:/Users/JaneDoe/Work/FreeCAD_occt751-install/
* Switch to the LibPack folder and go there to the subfolder ''cmake''
OpenCASCADE_DIR C:/Users/JaneDoe/Work/opencascade-7.5.1-install/cmake/
* Open there the file ''OpenCASCADEDrawTargets.cmake'' with a text editor
* Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>becomes just </br>''freetype.lib''</br>
* Do the same for the file ''OpenCASCADEVisualizationTargets.cmake''


== Compiling Netgen==


The LibPack comes with a version of [https://ngsolve.org Netgen] that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.
После того, как вы использовали CMake для создания файлов сборки для FreeCAD, откройте его в Visual Studio, создайте его, а затем запустите сборку в целевом объекте УСТАНОВКИ.


However, you might build Netgen nevertheless. This is an easy task:

* First obtain the Netgen source code, either directly from [https://github.com/NGSolve/netgen Netgen 's git repository].
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
{| class="wikitable" style="text-align:left"
|-
! Variable name !! Description !! Default
|-
| CMAKE_INSTALL_PREFIX|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.
|| C:/netgen
|-
| OpenCasCade_DIR|| The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section [[#Compiling_Open_Cascade|Compiling Open Cascade]] you can use the subfolder ''cmake'' of there folder you used as INSTALL_DIR. If not, use the subfolder ''cmake'' of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder ''lib'' and copy in the files ''freetype.lib'' and ''freetyped.lib'' from your LibPack.
|| empty
|-
| USE_GUI|| set it to '''OFF'''
|| ON
|-
| USE_NATIVE_ARCH|| set it to '''OFF'''; this is only necessary important to support older CPU that don't have the [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2] instruction set
|| ON
|-
| USE_OCC|| set it to '''ON'''
|| OFF
|-
| USE_PYTHON|| set it to '''OFF'''
|| ON
|-
| USE_SUPERBUILD|| set it to '''OFF'''
|| ON
|-
| ZLIB_INCLUDE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Zlib zlib]. It is recommended to use the folder as input where your used LibPack is.
|| empty
|-
| ZLIB_LIBRARY_DEBUG|| The path to the ZLib file ''zlibd.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
|| empty
|-
| ZLIB_LIBRARY_RELEASE|| The path to the ZLib file ''zlib.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
|| empty
|}

* Additionally you need to add a new CMake entry:
name: ''CMAKE_DEBUG_POSTFIX'', type: ''string'', content: '''_d'''</br>
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.

* Press the ''Configure'' button in CMake to generate the *.cmake files.
* Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
** Search your Netgen build folder for the file ''netgen-targets.cmake'' and open it with a text editor. Remove the setting '';/arch:AVX2'' in the Option INTERFACE_COMPILE_OPTIONS.
** Press the ''Configure'' button in CMake again.
* Press the ''Generate'' button in CMake.
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Repeat building the two targets in the '''Debug''' mode.

To build FreeCAD using the self-compiled Netgen, you must do the following:
* Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)

<span id="References"></span>
== Ссылки на литературу ==
== Ссылки на литературу ==


<div class="mw-translate-fuzzy">
Смотрите также
Смотрите также
* [[Compile_on_Windows_with_VS2013|Compile on Windows with Visual Studio 2013]]
* [[Compiling_(Speeding_up)|Compiling - Speeding up]]
* [[Compiling_(Speeding_up)|Compiling - Speeding up]]
</div>




<div class="mw-translate-fuzzy">
{{Docnav
{{Docnav/ru
|[[Licence|Licence]]
|[[License/ru|Лицензия]]
|[[Compile_on_Linux|Compile on Linux]]
|[[Compile_on_Linux/ru|Компиляция в Linux]]
}}
}}
</div>


{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 16:51, 4 April 2024

На этой странице шаг за шагом объясняется "как скомпилировать FreeCAD 0.19 или новее в Windows"". Для других платформ см.Compiling.

Требования

Для компиляции FreeCAD в Windows требуется несколько инструментов и библиотек.

Требования

  • Компилятор. FreeCAD тестируется с помощью Visual Studio (MSVC)—другие компиляторы могут работать, но инструкции по использованию здесь не включены. Более подробная информация в #Compiler, находится ниже.
  • Git (Для Git также доступны графические интерфейсы, см. Следующий раздел.)
  • CMake версия 3.11.x или более новая.
    "Подсказка:" Выбор опции Add CMake to the system PATH for all users при установке CMake сделает CMake доступным из командной строки Windows, что может быть полезно.
  • LibPack (так называемый FreeCADLibs). Это единый пакет, содержащий все библиотеки, необходимые для компиляции FreeCAD в Windows. Загрузите версию LibPack, соответствующую версии FreeCAD, которую вы хотите скомпилировать. Чтобы скомпилировать FreeCAD 0.19 или последнюю версию разработки 0.20, загрузите LibPack для 0.19/0.20 (только 64-разрядная версия). Извлеките пакет LibPack в удобное место. (Если ваш компьютер не распознает расширение .7z, вам следует установить программу 7-zip.)
    "Примечание": Настоятельно рекомендуется компилировать FreeCAD с версией компилятора, для которой предназначен LibPack. Например, вы можете столкнуться с проблемами при компиляции FreeCAD 0.19 с использованием MSVC 15, поскольку LibPack для 0.19 предназначен для сборки с MSVC 17.

Опционные программы

  • Графический интерфейс для Git. Существует несколько доступных интерфейсов, см. this list. Основное преимущество интерфейса заключается в том, что вам не нужно изучать команды Git, чтобы получить исходный код FreeCAD или отправлять исправления в репозиторий FreeCAD на GitHub.

Ниже мы опишем обработку исходного кода с использованием интерфейса TortoiseGit. Этот интерфейс интегрируется непосредственно в проводник файлов Windows и имеет большое сообщество пользователей, которые могут получить помощь в случае возникновения проблем.

  • NSIS используется для создания установщика Windows FreeCAD.

Исходный код

Теперь вы можете получить исходный код FreeCAD:

Использование интерфейса

При использовании TortoiseGit Интерфейс Git:

  1. Создайте новую папку, в которую будет загружен исходный код.
  2. Щелкните правой кнопкой мыши на этой папке в проводнике файлов Windows и выберите "'Git Clone" в контекстном меню.
  3. Появится диалоговое окно. В нем введите URL-адрес репозитория FreeCAD Git

https://github.com/FreeCAD/FreeCAD.git

и нажмите "ОК".

Последний исходный код будет загружен из репозитория FreeCAD Git, и Git будет отслеживать папку.

Использование командной строки

Чтобы создать локальную ветвь отслеживания и загрузить исходный код, откройте терминал (command prompt) и перейдите в каталог, в котором вы хотите получить исходный код, затем введите:

git clone https://github.com/FreeCAD/FreeCAD.git

Компилятор

По умолчанию (recommended) используется компилятор MS Visual Studio (MSVC). Хотя, возможно, можно использовать другие компиляторы, например gcc через Cygwin или MinGW, это не тестируется и не рассматривается здесь.

Вы можете получить бесплатную версию MSVC (для индивидуального использования), загрузив Community edition of MS Visual Studio.

Для тех, кто хочет избежать установки огромного MSVC только для того, чтобы иметь компилятор, см. CompileOnWindows - Reducing Disk Footprint.

"Примечание:" Несмотря на то, что "Community" выпуск MSVC является бесплатным, для использования среды IDE в течение более чем 30-дневного пробного периода необходимо создать учетную запись Майкрософт. Если вы будете компилировать только с помощью командной строки, вам не понадобится среда разработки и, следовательно, учетная запись Microsoft.

В качестве бесплатной и альтернативной среды разработки с открытым исходным кодом вы можете использовать KDevelop. Вы можете использовать KDevelop для изменения и написания кода на C++, но для компиляции необходимо использовать командную строку.

Дополнительная конфигурация системного пути

При необходимости вы можете включить пути к некоторым папкам в переменную системного ПУТИ. Это полезно, если вы хотите получить доступ к программам в этих папках из командной строки/powershell или если вы хотите, чтобы компилятор или CMake находили специальные программы. Кроме того, добавление папок в ПУТЬ может потребоваться, если вы не использовали соответствующие параметры при установке программы.

  • Вы можете включить папку вашего LibPack в переменную системного ПУТИ. Это полезно, если вы планируете создавать несколько конфигураций/версий FreeCAD.
  • Если вы не использовали опцию добавления CMake в ПУТЬ при его установке, добавьте папку его установки

"C:\Program Files\CMake\bin" по ПУТИ.

  • Если вы не использовали опцию добавления TortoiseGit в ПУТЬ при его установке, добавьте папку его установки

C:\Program Files\TortoiseGit\bin по ПУТИ.

Чтобы добавить пути к папкам в переменную PATH:

  1. В меню "Start" Windows щелкните правой кнопкой мыши на "Computer" и выберите "Properties".
  2. В появившемся диалоговом окне нажмите "Advanced system settings".
  3. Откроется другое диалоговое окно. Нажмите там на вкладке "Advanced" в разделе "Environment Variables".
  4. Снова откроется другое диалоговое окно. Затем выберите переменную "Path" и нажмите "Edit".
  5. И снова откроется другое диалоговое окно. Нажмите там на "New" и добавьте в путь к папке Git или LibPack.
  6. Наконец, нажмите "ОК" и закройте все диалоговые окна, также нажав "ОК".

Конфигурация

Как только у вас будут все необходимые инструменты, библиотеки и исходный код FreeCAD, вы будете готовы приступить к процессу настройки и компиляции. Этот процесс будет проходить в пять этапов:

  1. Запустите CMake один раз, чтобы проверить вашу систему и начать процесс настройки (это сообщит о том, что она не удалась).
  2. Настройте необходимые параметры CMake, чтобы установить расположение пакета LibPack и включить Qt5.
  3. Повторно запустите CMake, чтобы завершить настройку (на этот раз она должна завершиться успешно).
  4. Используйте CMake для создания системы сборки Visual Studio.
  5. Используйте Visual Studio для создания FreeCAD.

CMake

Во-первых, настройте среду сборки с помощью CMake:

  1. Откройте графический интерфейс CMake
  2. Укажите исходную папку FreeCAD.
  3. Укажите папку сборки (не используйте исходную папку-CMake создаст эту папку, если она не существует).
  4. Нажмите кнопку "Configure".
  5. В появившемся диалоговом окне укажите генератор, который вы хотите использовать: в большинстве случаев вы будете использовать значения по умолчанию в этом диалоговом окне. Для стандартной MS Visual Studio используйте "Visual Studio xx 2yyy", где xx-версия компилятора, а 2yyy-год его выпуска. Рекомендуется использовать опцию по умолчанию "Use default native compilers".

Примечание: Важно указать правильный вариант разрядности. Если у вас есть 64-разрядный вариант LibPack, вы также должны использовать компилятор x64.

Это приведет к началу настройки и "завершится ошибкой" из-за отсутствия настроек. Это нормально, вы еще не указали местоположение пакета LibPack. Однако могут возникнуть и другие сбои, которые потребуют некоторых дальнейших действий с вашей стороны.

Если произойдет сбой с сообщением о том, что Visual Studio не найдена, поддержка CMake в MSVC еще не установлена. Для этого:

  1. Откройте среду разработки MSVC
  2. Используйте меню Tools → Get Tools и Features
  3. На вкладке "Workloads" включите "Desktop development with C++".
  4. На правой стороне теперь вы должны видеть, что будет установлен компонент "Visual C++ tools for CMake".
  5. Установите его.

Если он завершится ошибкой с сообщением о неверной версии Python или отсутствующем Python, то:

  1. Используйте поле "Search:" в CMake для поиска строки "Python".
  2. Если вы видите там путь, подобный "C:/Program Files/Python38/python.exe", CMake распознал Python, который уже установлен на вашем компьютере, но эта версия несовместима с LibPack. Поскольку LibPack включает совместимую версию Python, измените следующие параметры Python в CMake в соответствии с его путями (при условии, что LibPack находится в папке "D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17"):

Если нет ошибки в Visual Studio или Python, все в порядке, но CMake еще не знает всех необходимых настроек. Поэтому сейчас:

  1. Найдите в CMake переменную "FREECAD_LIBPACK_DIR" и укажите местоположение папки LibPack, которую вы загрузили ранее.
  2. Только если сборка FreeCAD 0.19, найдите переменную "'BUILD_QT5" и включите эту опцию.
  3. Нажмите "Configure" еще раз.

Теперь ошибок быть не должно. Если вы по-прежнему сталкиваетесь с ошибками, которые не можете диагностировать, посетите Install/Compile forum на веб-сайте форума FreeCAD. Если CMake прошел правильно, нажмите на кнопку "Generate". После этого вы можете закрыть CMake и начать компиляцию FreeCAD с помощью Visual Studio. Однако для первой компиляции держите его открытым на случай, если вам захочется или потребуется изменить некоторые параметры процесса сборки.

Параметры процесса сборки

Система сборки CMake дает вам контроль над некоторыми аспектами процесса сборки. В частности, вы можете включать и выключать некоторые функции или модули с помощью переменных CMake.

Вот описание некоторых из этих переменных:

Variable name Description Default
BUILD_XXX Создайте FreeCAD с компонентом XXX. Если вы не хотите/не нуждаетесь в компиляции, например, рабочего стола "OpenSCAD", отключите переменную "BUILD_OPENSCAD". Тогда у FreeCAD не будет этого верстака.

""Примечание: "" Некоторые компоненты требуются для других компонентов. Если вы, например, снимите флажок "BUILD_ROBOT", CMake сообщит вам, что компонент "Путь" не может быть правильно скомпилирован. Поэтому проверьте вывод CMake после изменения параметра BUILD_XXX!

depends
BUILD_ENABLE_CXX_STD Версия стандарта языка C++. "C++14" является максимально возможным для FreeCAD 0.19, в то время как для FreeCAC 0.20 требуется как минимум "C++17". См. Также примечание в разделе Building with Visual Studio 15 (2017) and 16 (2019) depends
CMAKE_INSTALL_PREFIX Выходная папка при создании целевой "INSTALL" см. также раздел Running and installing FreeCAD Windows' default program installation folder
FREECAD_COPY_DEPEND_DIRS_TO_BUILD Копии библиотек, необходимых для выполнения FreeCAD.exe в папку сборки. См. также раздел Running and installing FreeCAD.
"Примечание:" параметры FREECAD_COPY_XXX отображаются только в том случае, если библиотеки еще не были скопированы. Поэтому при переходе на другую версию LibPack важно удалить все папки в папке сборки, кроме папки LibPack. В CMake удалите кэш и начните так, как будто вы компилируете в первый раз, и вы получите параметры FREECAD_COPY_XXX options.
OFF
FREECAD_COPY_PLUGINS_BIN_TO_BUILD Copies Qt's plugin files needed to execute the FreeCAD.exe to the build folder. См. также раздел Running and installing FreeCAD. OFF
FREECAD_LIBPACK_USE Switch the usage of the FreeCAD LibPack on or off ON
FREECAD_LIBPACK_DIR Directory where the LibPack is FreeCAD's source code folder
FREECAD_RELEASE_PDB Create debug libraries also for release builds ON

Сборка FreeCAD

В зависимости от вашего компилятора процесс создания FreeCAD будет немного отличаться. В следующих разделах описаны известные вам рабочие процессы. Если вы создаете с помощью Qt Creator, перейдите к Building with Qt Creator, в противном случае продолжайте напрямую:

Сборка в Visual Studio 15 (2017) и 16 (2019)

Сборка релиза

  1. Запустите среду разработки Visual Studio. Это можно сделать либо нажатием кнопки "Open Project" в графическом интерфейсе CMake, либо двойным щелчком по файлу "FreeCAD.sln", который вы найдете в папке сборки.
  2. На панели инструментов среды разработки MSVC убедитесь, что вы используете для первой компиляции "Release".
  3. Есть окно под названием "Solution Explorer". В нем перечислены все возможные цели компиляции. Чтобы начать полную компиляцию, щелкните правой кнопкой мыши на целевом объекте "ALL_BUILD", а затем выберите "Build".

Теперь это займет довольно много времени.

Чтобы скомпилировать готовый к использованию FreeCAD, скомпилируйте целевую "INSTALL", см. раздел Running and installing FreeCAD.

Если вы не получили никаких ошибок, значит все готов. "Поздравляю!" Теперь вы можете выйти из MSVC или оставить его открытым.

"Примечание:" Для FreeCAD 0.20 требуется, по крайней мере, стандартная версия языка C++ 17, но сторонний компонент "flann" из LibPack еще не готов для этого. Поэтому вы получите ошибки компиляции для целевого "обратного проектирования". Чтобы исправить это, щелкните правой кнопкой мыши на этом целевом объекте в обозревателе решений MSVC и выберите в контекстном меню последнюю запись "Properties". В появившемся диалоговом окне измените "C++ Language Standard" на "ISO C++14". Наконец, снова создайте цель "ALL_BUILD".

Отладочная сборка

Для отладочной сборки необходимо использовать Python, который входит в пакет LibPack. Чтобы гарантировать это:

  1. Поиск в графическом интерфейсе CMake "Python"
  2. Если вы видите там путь, подобный "C:/Program Files/Python38/python.exe", CMake распознал Python, установленный на вашем компьютере, а не тот, который входит в LibPack. В этом случае адаптируйте эти различные настройки Python в CMake к этому (при условии, что LibPack находится в папке "D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17"):

As prerequisite for the debug build, you need to do this:

  1. Copy the content of the LibPack folder bind to the bin folder of the FreeCAD build folder (overwrite the existing files).
  2. Copy the content of the LibPack folder libd to the lib folder of the FreeCAD build folder.

Теперь

  1. Запустите среду разработки Visual Studio. Это можно сделать либо нажатием кнопки "Open Project" в графическом интерфейсе CMake, либо двойным щелчком по файлу "FreeCAD.sln", который вы найдете в папке сборки.
  2. На панели инструментов среды разработки MSVC убедитесь, что вы используете для первой компиляции "Debug".
  3. Есть окно под названием "Solution Explorer". В нем перечислены все возможные цели компиляции. Чтобы начать полную компиляцию, щелкните правой кнопкой мыши на целевом объекте "ALL_BUILD", а затем выберите "Build" в контекстном меню.

Теперь это займет довольно много времени. Если ошибок компиляции не было, вы можете запустить отладочную сборку:

  1. Щелкните правой кнопкой мыши на целевой "FreeCADMain", а затем выберите "Set as Startup Project" в контекстном меню.
  2. Наконец, нажмите на панели инструментов на кнопку с зеленым треугольником под названием "Local Windows Debugger".

If there were no compilation errors, and if the FREECAD_COPY_* options mentioned in the CMake Configuration step above were enabled, you can start the debug build:

  1. Right-click on the target FreeCADMain and then choose Set as Startup Project in the context menu.
  2. Finally click in the toolbar on the button with the green triangle named Local Windows Debugger.

Это запустит отладочную сборку FreeCAD, и вы сможете использовать среду разработки MSVC для ее отладки.

Видеоресурс

Учебник по английскому языку, который начинается с настройки в графическом интерфейсе CMake и продолжается командой "Build" в Visual Studio 16 2019, доступен без списка на YouTube по адресу Tutorial: Build FreeCAD from source on Windows 10.

Сборка с помощью Qt Creator (устарело)

Инсталяция и настройка Qt Creator

  • Загрузите и установите Qt Creator
  • Tools → Options → Text Editor → Behavior tab:
    • File Encodings → Default Encodings:
    • Установите значение: "'ISO-8859-1 /...csISOLatin1"' (Некоторые символы создают ошибки/предупреждения с помощью Qt Creator, если оставить значение UTF-8. Это, кажется, все исправляет.)
  • Tools → Options → Build & Run:
    • CMake tab
      • Заполните поле Исполняемый файл путем к cmake.exe
    • Kits tab
      • Name: MSVC 2008
      • Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
      • Debugger: Auto detected...
      • Версия Qt: Отсутствует
    • General tab
      • Снимите флажок: Всегда создавайте проект перед его развертыванием
      • Снимите флажок: Всегда развертывайте проект перед его запуском

Импорт проекта и здания

  • File → Open File or Project
  • Открыть "'CMakeLists.txt"' который находится на верхнем уровне источника
  • Это запустит CMake
  • Выберите каталог сборки и нажмите кнопку Далее
  • Установите для генератора значение "NMake Generator (MSVC 2008)"'
  • Нажмите кнопку Запустить CMake. Следуйте инструкциям, приведенным выше, чтобы настроить CMake по своему вкусу.

Теперь FreeCAD можно построить

  • Build → Build All
  • Это займет много времени...

После завершения его можно запустить: В левом нижнем углу есть 2 зеленых треугольника. Один из них-отладка. Другой "run". Выбери, что тебе больше нравится.

Сборка из командной строки

Шаги по компиляции из командной строки зависят от компилятора. Для MSVC 2017 следующие шаги:

  1. В меню "Пуск" Windows перейдите в Visual Studio 2017 → Visual Studio Tools и выберите ""Командная строка разработчика для VS 2017""
  2. Перейдите в папку сборки.
  3. Выполните команду
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

или

msbuild INSTALL.vcxproj /p:Configuration=Release

Эти шаги также могут быть автоматизированы. Вот, например, решение для MSVC 2017:

  1. Скачать скрипт compile-FC.txt.
  2. Переименуйте его в "compile-FC.bat".
  3. В проводнике файлов Windows Shift+Right-click на папке сборки и используйте из контекстного меню "Command prompt here".
  4. Выполните команду
compile-FC install

Вместо вызова compile-FC с опцией install вы также можете использовать debug или release.:

debug   - компиляция FreeCAD в конфигурации отладки

release - компиляция FreeCAD в конфигурации выпуска

install    - скомпилируйте FreeCAD в конфигурации выпуска и создайте установку установки

Запуск и установка FreeCAD

Существует 2 метода для запуска скомпилированного FreeCAD:

"Метод 1": Вы выполняете FreeCAD.exe которые вы найдете в своей папке сборки во вложенной папке "bin"

"Метод 2": Вы создаете целевую "УСТАНОВКУ"

Метод 2 является более простым, поскольку он автоматически гарантирует, что все библиотеки, необходимые для запуска FreeCAD.exe находятся в нужной папке. В FreeCAD.exe и библиотеки будут выведены в папку, указанную вами в переменной CMake "CMAKE_INSTALL_PREFIX".

Для метода 1 вам нужно поместить библиотеки в папку "bin" вашей папки сборки (где FreeCAD.exe есть). Это можно легко сделать:

  1. Откройте графический интерфейс CMake.
  2. Найдите там параметр переменной "FREECAD_COPY_DEPEND_DIRS_TO_BUILD" и проверьте его. Если такой опции нет, библиотеки уже были скопированы, см. description of the options.
  3. Найдите там параметр переменной "FREECAD_COPY_LIBPACK_BIN_TO_BUILD" и проверьте его.
  4. Найдите там параметр переменной "FREECAD_COPY_PLUGINS_BIN_TO_BUILD" и проверьте его.
  5. Нажмите на кнопку "Configure". В конце настройки CMake автоматически скопирует необходимые библиотеки из папки LibPack.

Troubleshooting

When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:

import os
os.system(r"~\DependenciesGui.exe")

Note: Instead of the ~ you must specify the full path to the DependenciesGui.exe on your system.

  • Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.

Обновление сборки

FreeCAD очень активно развивается. Поэтому его исходный код меняется почти ежедневно. Добавляются новые функции и исправляются ошибки. Чтобы извлечь выгоду из этих изменений исходного кода, вы должны перестроить свой FreeCAD. Это делается в два этапа:

  1. Обновление исходного кода
  2. Перекомпиляция

Обновление исходного кода

Использование интерфейса

При использовании Git frontend TortoiseGit:

  1. Щелкните правой кнопкой мыши папку с исходным кодом FreeCAD в проводнике файлов Windows и выберите в контекстном меню ""Pull"".
  2. Появится диалоговое окно. Выберите там, какую ветвь разработки вы хотите получить. "master" - это основная ветвь. Поэтому используйте это, если вы не хотите скомпилировать специальную новую функцию из ветви, которая еще не была объединена в "master". (Для получения дополнительной информации о ветвях Git см. Git development process.)

Наконец, нажмите "ОК".

Использование командной строки

Откройте терминал (командная строка) и переключитесь там в свой исходный каталог. Затем введите:

git pull https://github.com/FreeCAD/FreeCAD.git master

где "master" - название основной ветви разработки. Если вы хотите получить код из другой ветви, используйте ее имя вместо "master".

Сборник

  1. Откройте среду разработки MSVC, дважды щелкнув файл "FreeCAD.sln" или файл "ALL_BUILD.vcxproj" в папке сборки.
  2. Перейдите к шагу 2 из раздела Building with Visual Studio 15 2017.

Updating the LibPack

If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version here.

To update your LibPack the following recipe is best practice:

  1. Delete the bin folder in your build folder.
  2. Switch to your local LibPack folder and delete everything there.
  3. Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.
  4. Open CMake and there press the button Configure and then the button Generate. This recreates the bin folder you just deleted and also copies the new LibPack files into it.
  5. In CMake click the button Open Project and the MSVC IDE will open.
  6. In the MSVC IDE build the target INSTALL.

Инструменты

Для того, чтобы включиться к разработке FreeCAD, вы должны скомпилировать и установить следующие инструменты:

Плагин Qt designer

FreeCAD использует Qt в качестве инструментария для его пользовательского интерфейса. Все диалоговые окна настраиваются в UI-файлах, которые можно редактировать с помощью программы Qt Designer, который является частью любой установки Qt, а также включен в пакет LibPack. FreeCAD имеет свой собственный набор виджетов Qt для предоставления специальных функций, таких как добавление единицы измерения в поля ввода и настройка свойств настроек.

Сборник

DLL не может быть загружена как плагин, если она была скомпилирована с использованием другой версии Qt, чем тот, на котором основан ваш Qt Designer/Qt Creator. В этом случае вы должны скомпилировать DLL самостоятельно. Это делается следующим образом:

  • In the CMake options (see this section above) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
  • open MSVC and build the target FreeCAD_widgets

As result you will get the plugin file 'FreeCAD_widgets.dll in the folder
~\src\Tools\plugins\widget\Release

Установка

  1. Скачать this ZIP файл. (Скомпилирован с использованием Qt 5.12, см. below.)
  2. Извлеките DLL-файл в ZIP-файле и скопируйте его
  • Если вы используете LibPack: в папку
    "~\FreeCADLibs_12.5.2_x64_VC17\bin\designer"
    , так как там будет только папка "bin", и вы должны сначала создать подпапку "конструктор".
  • Если у вас полная установка Qt: вы можете выбрать между folder
    "C:\Qt\5.15.2\msvc2019_64\plugins\designer"
    or
    "C:\Qt\5.15.2\msvc2019_64\bin\designer" (сначала вы должны создать подпапку "конструктор".)
    (адаптируйте пути к вашей установке!).

(Повторно)Запустите Qt Designer и проверьте его меню Help → Plugins. Если плагин "' FreeCAD_widgets.dll"' указана как загружаемая, теперь вы можете создавать и изменять файлы .ui FreeCAD. Если нет, вы должны compile создать библиотеку DLL самостоятельно.

Если вы предпочитаете использовать Qt Creator вместо Qt Designer библиотека DLL должна быть помещена в эту папку:
"C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer"
(Повторно)Запустите Qt Creator, переключитесь в режим "Design", а затем проверьте меню Tools → Form Editor → About Qt Designer Plugins. Если плагин "' FreeCAD_widgets.dll"' указана как загружаемая, теперь вы можете создавать и изменять файлы .ui FreeCAD. Если нет, вы должны compile создать библиотеку DLL самостоятельно.

Поставщик миниатюр

FreeCAD имеет функцию предварительного просмотра миниатюр для файлов *.FCStd. Это означает, что в проводнике файлов Windows *.FCStd файлы отображаются со снимком экрана модели, которую он содержит. Чтобы предоставить эту функцию, FreeCAD должен иметь файл "'FCStdThumbnail.dll"" где установлено в Windows.

Установка

Библиотека DLL устанавливается таким образом:

  1. Скачать this ZIP file и извлеките его.
  2. Откройте командную строку Windows с правами администратора (эти права являются обязательным требованием).
  3. Перейдите в папку, в которой находится библиотека DLL.
  4. Выполните эту команду
    regsvr32 FCStdThumbnail.dll
    

Поэтому проверьте, работает ли это, убедитесь, что в FreeCAD включена опция настроек "Save thumbnail into project file when saving document"" и сохраните модель. Затем просмотрите в проводнике Windows папку сохраненной модели, используя представление символов. Теперь вы должны увидеть снимок экрана модели в представлении папок.

Сборник

Для компиляции FCStdThumbnail.dll

  1. Перейдите в исходную папку FreeCAD
    "~\src\Tools\thumbs\ThumbnailProvider"
  2. Откройте графический интерфейс CMake
  3. Укажите там в качестве исходной папки ту, в которой вы находитесь в данный момент.
  4. Используйте ту же папку, что и папка сборки.
  5. Нажмите "Configure".
  6. В появившемся диалоговом окне укажите генератор в соответствии с тем, который вы хотите использовать. Для стандартной MS Visual Studio используйте "Visual Studio xx 2yyy", где xx-версия компилятора, а 2yyy-год его выпуска. Рекомендуется использовать опцию по умолчанию "Использовать собственные компиляторы по умолчанию".
    "Примечание:" Важно указать правильный вариант бита. Если у вас 64-битный вариант LibPack, вы также должны использовать компилятор x64.
  7. Нажмите на кнопку "Generate".
  8. Теперь у вас должен быть файл "ALL_BUILD.vcxproj" в папке "~\src\Tools\thumbs\ThumbnailProvider". Дважды щелкните по нему, и откроется среда разработки MSVC.
  9. На панели инструментов среды разработки MSVC убедитесь, что вы используете целевой объект компиляции "Release".
  10. Есть окно под названием "Solution Explorer". Щелкните правой кнопкой мыши на "ALL_BUILD", а затем выберите "Build".
  11. В результате у вас теперь должно быть "'FCStdThumbnail.dll"' в папке "~\src\Tools\thumbs\ThumbnailProvider\release", который вы можете установить, как описано выше.

Компиляция OpenCascade

Стандартный пакет Libpack поставляется с версией OpenCascade, подходящей для общего использования. Однако при некоторых обстоятельствах вы можете захотеть скомпилировать с альтернативной версией OpenCascade, такой как один из их официальных релизов или исправленная ветвь. Обратите внимание, что нет никакой гарантии, что FreeCAD будет работать со всеми версиями OpenCascade, и использование версии, отличной от Libpack, предназначено только для продвинутых пользователей. Обратите также внимание, что если вы используете библиотеку Netgen, она использует OpenCascade для некоторых своих функций и должна быть скомпилирована с той же версией OpenCascade, которую вы используете при компиляции FreeCAD.

When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.

Сначала получите исходный код OpenCascade либо непосредственно со страницы выпуска по адресу OpenCASCADE.org, через git, или путем клонирования чужой вилки, например вилка "blobfish" поддерживается участником форума FreeCAD tanderson69.

Затем используйте CMake для настройки системы сборки аналогично созданию FreeCAD. Примечательными вариантами CMake для OpenCascade являются:

  • 3RDPARTY_DIR - Место расположения ваших сторонних библиотек, обычно заданное в каталоге FreeCAD Libpack
  • INSTALL_DIR - Где устанавливают готовые библиотеки. Рекомендуется использовать изолированный каталог в вашей системе, а не устанавливать его глобально или перезаписывать версию Libpack.
  • Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the Release mode.
  • Repeat building the two targets in the Debug mode.

To build FreeCAD using the self-compiled Open Cascade, you must do the following:

  • Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
  • Switch to the LibPack folder and go there to the subfolder cmake
  • Open there the file OpenCASCADEDrawTargets.cmake with a text editor
  • Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path
    D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib
    becomes just
    freetype.lib
  • Do the same for the file OpenCASCADEVisualizationTargets.cmake

Compiling Netgen

The LibPack comes with a version of Netgen that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.

However, you might build Netgen nevertheless. This is an easy task:

  • First obtain the Netgen source code, either directly from Netgen 's git repository.
  • Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
Variable name Description Default
CMAKE_INSTALL_PREFIX The output folder when building the target INSTALL. If the build was successful, take the files from this folder to update your LibPack. C:/netgen
OpenCasCade_DIR The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section Compiling Open Cascade you can use the subfolder cmake of there folder you used as INSTALL_DIR. If not, use the subfolder cmake of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder lib and copy in the files freetype.lib and freetyped.lib from your LibPack. empty
USE_GUI set it to OFF ON
USE_NATIVE_ARCH set it to OFF; this is only necessary important to support older CPU that don't have the AVX2 instruction set ON
USE_OCC set it to ON OFF
USE_PYTHON set it to OFF ON
USE_SUPERBUILD set it to OFF ON
ZLIB_INCLUDE_DIR The path to the necessary 3rdparty component zlib. It is recommended to use the folder as input where your used LibPack is. empty
ZLIB_LIBRARY_DEBUG The path to the ZLib file zlibd.lib. It is located in the subfolder lib of your LibPack folder. empty
ZLIB_LIBRARY_RELEASE The path to the ZLib file zlib.lib. It is located in the subfolder lib of your LibPack folder. empty
  • Additionally you need to add a new CMake entry:

name: CMAKE_DEBUG_POSTFIX, type: string, content: _d
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.

  • Press the Configure button in CMake to generate the *.cmake files.
  • Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
    • Search your Netgen build folder for the file netgen-targets.cmake and open it with a text editor. Remove the setting ;/arch:AVX2 in the Option INTERFACE_COMPILE_OPTIONS.
    • Press the Configure button in CMake again.
  • Press the Generate button in CMake.
  • Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the Release mode.
  • Repeat building the two targets in the Debug mode.

To build FreeCAD using the self-compiled Netgen, you must do the following:

  • Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)

Ссылки на литературу

Смотрите также