CompileOnWindows

From FreeCAD Documentation
Revision as of 08:22, 19 September 2019 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
Tracker
CompileOnUnix

Acest articol explică pas cu pas how to compile FreeCAD on Windows.

A se vedea și

Premise

At first you must install the following required programs ad libraries:

Programe necesare

  • Git Aici sunt câteva dintre alternative ca GitCola, Tortoise Git, și altele.
  • CMake versiunea 2.x.x sau Cmake 3.x.x
  • Python >2.5 (Acest lucru este necesar numai dacă NU utilizați Libpack. Libpack este livrat încpând cu Python(2.7.x) potrivit pentru compilarea și rularea FreeCAD)
  • Git (There are also a number of alternatives such as GitCola, Tortoise Git, and others.)
  • CMake version 3.11.x - 3.14.x. Note: Usually one cannot take the latest CMake version. Therefore only use a CMake version in the range specified on this page!
    It is recommended to use the option Add CMake to the system PATH for all users when installing CMake. then you an later easily access CMake also from the command line/powershell.
  • LibPack (also called FreeCADLibs). This is a set of libraries necessary to compile FreeCAD on Windows. depending on the FreeCAD version you want to compile, you must download the corresponding LibPack. For example to compile FreeCAD 0.18, download either the 32bit or the 64bit version of the LibPack for 0.18, to compile the latest development version 0.19, download the LibPack for 0.19 (there is only a 64bit version).

Optional programs

  • Python 3.x. A separate python installation is not mandatory since the LibPack contains Python. However, to be able to test later your FreeCAD build it is useful to have a standalone Python installation. It is recommended to use not the latest version, but the prior version (e.g. not Python 3.7 but 3.6).
  • TortoiseGit. This is a graphic frontend for Git. It will integrate directly to Windows file explorer. The main benefit is that you don't have to learn the Git commands to get the soure code of FreeCAD or to send patches to the Github repository of FreeCAD.

Codul sursă

Utilizați Git (de preferință)

Using Git (Preferred)

Pentru a crea o ramură de urmărire locală și pentru a descărca codul sursă, trebuie să deschideți un terminal (promp de comandă) și cd(change directory) în directorul pe care doriți să plasați codul sursă, apoi tastați:

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

Compilator

Sub Windows, compilatorul implicit este MS Visual Studio. CI utilizează versiunea din 2013.

On Windows, the default compiler is MS Visual Studio. CI uses 2013 version.

Pentru cei care doresc să evite instalarea imensului Visual Studio pentru simplul scop de a avea un compilator, vezi CompileOnWindows - Reducing Disk Footprint.

Note

Though it may be possible to use Cygwin or MinGW gcc it's not tested or ported so far.


Biblioteci de la terți

Veți avea nevoie de Third Party Libraries pentru a compila cu succes FreeCAD. Dacă utilizați compilatoare MS, se recomandă să instalați a FreeCAD LibPack,, care oferă toate bibliotecile necesare pentru a construi FreeCAD sub Windows. Veți avea nevoie de Libpack pentru arhitectura și compilatorul dvs. FreeCAD furnizează în prezent Libpack Version11 for x32 and x64, pentru VS9 2008, VS11 2012, și VS12 2013.

You will need all of the Third Party Libraries to successfully compile FreeCAD. If you use the MS compilers it is recommended to install a FreeCAD LibPack, which provides all of the required libraries to build FreeCAD in Windows. You will need the Libpack for your architecture and compiler. FreeCAD currently supplies Libpack Version11 for x32 and x64, for VS9 2008, VS11 2012, and VS12 2013.

Programe opționale

  • NSIS Windows installer (note: formerly, WiX instalator a fost folosit - acum în tranziție la NSIS) - dacă doriți să faceți instalare Msi
  • NSIS Windows installer (note: formerly, WiX installer was used - now under transition to NSIS) - if you want to make msi installer

Configurarea căii de sistem

În interiorul căii dvs. de sistem, asigurați-vă că setați căile corecte la următoarele programe:

  • git (not tortoiseGit, but git.exe) Acest lucru este necesar pentru ca Cmake să actualizeze în mod corespunzător informațiile despre versiunea "Despre FreeCAD".h fișierul care permite FreeCAD să raporteze versiunea corespunzătoare din About FreeCAD din meniul de ajutor.
  • În mod opțional, puteți include Libpack în calea dvs. de sistem. Acest lucru este util dacă intenționați să construiți mai multe configurații / versiuni ale FreeCAD, va trebui să copiați mai puține fișiere după cum este explicat mai târziu în procesul de rulare.

Inside your system path be sure to set the correct paths to the following programs:

  • git (not tortoiseGit, but git.exe) This is necessary for Cmake to properly update the "About FreeCAD" information in the version.h file which allows FreeCAD to report the proper version in About FreeCAD from the help menu.
  • Optionally you can include the Libpack in your system path. This is useful if you plan to build multiple configurations/versions of FreeCAD, you will need to copy less files as explained later in the build process.

Pentru a adăuga la cale asitemului dvs:

  • Start menu -> Right click on Computer -> Properties -> Advanced system settings
  • Advanced tab -> Environment Variables...
  • Add the PATH/TO/GIT to the PATH
  • It should be separated from the others with a semicolon `;`

Configurare cu CMake

CMake

Primul pas pentru a compila FreeCAD cu CMake este de a configura mediul. Acolo sunt două moduri de a face acest lucru:

  • Utilizând LibPack
  • Instalând toae pachetele necesare și a lăsa CMake să le găsească

The first step to build FreeCAD with CMake is to configure the environment.

Configurare CMake în GUI

  • Open the CMake GUI
  • Specify the source folder
  • Specify the build folder
  • Click Configure
  • Specify the generator according to the IDE that you'll use.
  • Open the CMake GUI
  • Specify the source folder
  • Specify the build folder
  • Click Configure
  • 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 ad yyy the year of its release. It is recommended to use the default option Use default native compilers. 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.

Aceasta va începe configurarea și ar trebui să eșueze deoarece locația FREECAD_LIBPACK_DIR is unset.

  • Expand the FREECAD category and set FREECAD_LIBPACK_DIR to the correct location
  • Check FREECAD_USE_EXTERNAL_PIVY
  • Optionally Check FREECAD_USE_FREETYPE this is required to use the Draft WB's Shape String functionality
  • Click Configure again
  • There should be no errors
  • Click Generate
  • Close CMake
  • Copy libpack\bin folder into the new build folder CMake created

There should now be no errors. If yes, click on Generate. After this is done you could close CMake and continue to start the compilation of FreeCAD. However, for the first compilation keep it open for the case that you wnat or need to change some options for the build process:

Opțiuni pentru compilarea Proceselor

Sistemul de compilare CMake ne oferă o mult mai mare flexibilitate în procesul de compilare. Asta înseamnă că putem porni și dezactiva câteva funcționalități sau module. Este într-un fel ca compilarea kernel-ului Linux. Aveți o mulțime de comutatoare pentru a determina procesul de compilare.

Iată descrierea unora dintre aceste switch-uri. Probabil că se vor schimba mult în viitor pentru că vrem să creștem flexibilitatea compilării mult mai mult.

Link table
Variable name Description Default
FREECAD_LIBPACK_USE Switch the usage of the FreeCAD LibPack on or off On Win32 on, otherwise off
FREECAD_LIBPACK_DIR Directory where the LibPack is FreeCAD SOURCE dir
FREECAD_BUILD_GUI Build FreeCAD with all Gui related modules ON
FREECAD_BUILD_CAM Build the CAM module, experimental! OFF
FREECAD_BUILD_INSTALLER Create the project files for the Windows installer. OFF
FREECAD_BUILD_DOXYGEN_DOCU Create the project files for source code documentation. OFF
FREECAD_MAINTAINERS_BUILD Switch on stuff needed only when you do a Release build. OFF

Dacă compilați Qt Creator, săriți la Building with Qt Creator, altfel procedați la Building with Visual Studio 9 2008.

Compilarea FreeCAD

În funcție de configurația actuală, procesul de construire a FreeCAD va fi ușor diferit. Acest lucru se datorează diferențelor dintre versiunile de software disponibile pentru fiecare sistem de operare.

Depending on your current setup, the process for building FreeCAD will be slightly different. This is due to the differences in available software and software versions for each operating system.


The following procedure will work for compiling on Windows Vista/7/8, for XP an alternate VS tool set is required for VS 2012 and 2013, which has not been tested successfully with the current Libpacks. To target XP(both x32 and x64) it is recommended to use VS2008 and Libpack FreeCADLibs_11.0_x86_VC9.7z

Building with Visual Studio 12 2013

Make sure to specify Visual Studio 12 x64(or the alternate C-Compiler you are using) as the generator in CMake before you continue.

Make sure to specify Visual Studio 12 x64(or the alternate C-Compiler you are using) as the generator in CMake before you continue.

  • Start Visual Studio 12 2013 by clicking on the desktop icon created at installation.
  • Open the project by:

File -> Open -> Project/Solution

  • Open FreeCAD_Trunk.sln from the build folder CMake created
  • Switch the Solutions Configuration drop down at the top to Release X64

This may take a while depending on your sytem

  • Build -> Build Solution
  • This will take a long time...

If you don't get any errors you are done. Exit Visual Studio and start FreeCAD by double clicking the FreeCAD icon in the bin folder of the build directory.

Building with Visual Studio 9 2008

Warning

Since early 0.17 cycle Freecad uses c++11 features that are not supported by 2008 version

Warning

Since early 0.17 cycle Freecad uses c++11 features that are not supported by 2008 version



Compilare cu Qt Creator

Installation and configuration of Qt Creator

  • Download and install Qt Creator
  • Tools -> Options -> Text Editor -> Behavior tab:
    • 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.)
  • Tools -> Options -> Build & Run:
    • CMake tab
      • Fill Executable box with path to cmake.exe
    • Kits tab
      • Name: MSVC 2008
      • Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
      • Debugger: Auto detected...
      • Qt version: None
    • General tab
      • Uncheck: Always build project before deploying it
      • Uncheck: Always deploy project before running it
  • Download and install Qt Creator
  • Tools → Options → Text Editor → Behavior tab:
    • 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.)
  • Tools → Options → Build & Run:
    • CMake tab
      • Fill Executable box with path to cmake.exe
    • Kits tab
      • Name: MSVC 2008
      • Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
      • Debugger: Auto detected...
      • Qt version: None
    • General tab
      • Uncheck: Always build project before deploying it
      • Uncheck: Always deploy project before running it

Import project and Build

  • File -> Open File or Project
  • Open CMakeLists.txt which is in the top level of the source
  • This will start CMake
  • Choose build directory and click next
  • Set generator to NMake Generator (MSVC 2008)
  • Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.
  • File → Open File or Project
  • Open CMakeLists.txt which is in the top level of the source
  • This will start CMake
  • Choose build directory and click next
  • Set generator to NMake Generator (MSVC 2008)
  • Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.

Now FreeCAD can be built

  • Build -> Build All
  • This will take a long time...

Once complete, it can be run: There are 2 green triangles at the bottom left. One is debug. The other is run. Pick whichever you want.


Command line build

Here an example how to build FreeCAD from the Command line:

Here an example how to build FreeCAD from the Command line:

rem @echo off
rem   Build script, uses vcbuild to completetly build FreeCAD
 
rem update trunc
d:
cd "D:\_Projekte\FreeCAD\FreeCAD_0.9"
"C:\Program Files (x86)\Subversion\bin\svn.exe" update 
 
rem  set the aprobiated Variables here or outside in the system
 
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
set INCLUDE=
set LIB=
 
rem Register VS Build programms
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
 
rem Set Standard include paths
set INCLUDE=%INCLUDE%;%FrameworkSDKDir%\include
set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
 
rem Set lib Pathes
set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Visual Studio\VC98\Lib
 
rem Start the Visuall Studio build process
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "D:\_Projekte\FreeCAD FreeCAD_0.9_build\FreeCAD_trunk.sln" /useenv


Running and installing FreeCAD

There are 2 methods to run the compiled FreeCAD:

  1. You execute the FreeCAD.exe that you find in your build folder in the subfolder bin
  2. You build the target INSTALL

Method 2 is the simpler one because it automatically assures that all libraries needed to run the FreeCAD.exe are in the correct folder. The FreeCAD.exe and the libraries will be output in the folder you specified in the CMake variable CMAKE_INSTALL_PREFIX.
For FreeCAD 0.19 there is currently only one issue that requires your action:

  1. Download the file qwindowsvistastyle.zip from the FreeCAD forum.
  2. Create a new subfolder named styles in the bin folder.
  3. Extract the ZIP-file to this folder.

This adds the necessary style to make FreeCAD look like a normal Win 10 program, otherwise it looks like in Windows 98.

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, by using the CMake variable option FREECAD_COPY_LIBPACK_BIN_TO_BUILD.

Compilarea versiunilor vechi

Using LibPack

To make it easier to get FreeCAD compiled, we provide a collection of all needed libraries. It's called the LibPack. You can find it on the download page on sourceforge.

To make it easier to get FreeCAD compiled, we provide a collection of all needed libraries. It's called the LibPack. You can find it on the download page on sourceforge.

You need to set the following environment variables:

FREECADLIB = "D:\Wherever\LIBPACK"
QTDIR = "%FREECADLIB%"

Add "%FREECADLIB%\bin" and "%FREECADLIB%\dll" to the system PATH variable. Keep in mind that you have to replace "%FREECADLIB%" with the path name, since Windows does not recursively replace environment variables.

Directory setup in Visual Studio

Some search path of Visual Studio need to be set. To change them, use the menu Tools→Options→Directory

Some search path of Visual Studio need to be set. To change them, use the menu Tools→Options→Directory

Includes

Add the following search path to the include path search list:

  • %FREECADLIB%\include
  • %FREECADLIB%\include\Python
  • %FREECADLIB%\include\boost
  • %FREECADLIB%\include\xercesc
  • %FREECADLIB%\include\OpenCascade
  • %FREECADLIB%\include\OpenCV
  • %FREECADLIB%\include\Coin
  • %FREECADLIB%\include\SoQt
  • %FREECADLIB%\include\QT
  • %FREECADLIB%\include\QT\Qt3Support
  • %FREECADLIB%\include\QT\QtCore
  • %FREECADLIB%\include\QT\QtGui
  • %FREECADLIB%\include\QT\QtNetwork
  • %FREECADLIB%\include\QT\QtOpenGL
  • %FREECADLIB%\include\QT\QtSvg
  • %FREECADLIB%\include\QT\QtUiTools
  • %FREECADLIB%\include\QT\QtXml
  • %FREECADLIB%\include\Gts
  • %FREECADLIB%\include\zlib

Add the following search path to the include path search list:

  • %FREECADLIB%\include
  • %FREECADLIB%\include\Python
  • %FREECADLIB%\include\boost
  • %FREECADLIB%\include\xercesc
  • %FREECADLIB%\include\OpenCascade
  • %FREECADLIB%\include\OpenCV
  • %FREECADLIB%\include\Coin
  • %FREECADLIB%\include\SoQt
  • %FREECADLIB%\include\QT
  • %FREECADLIB%\include\QT\Qt3Support
  • %FREECADLIB%\include\QT\QtCore
  • %FREECADLIB%\include\QT\QtGui
  • %FREECADLIB%\include\QT\QtNetwork
  • %FREECADLIB%\include\QT\QtOpenGL
  • %FREECADLIB%\include\QT\QtSvg
  • %FREECADLIB%\include\QT\QtUiTools
  • %FREECADLIB%\include\QT\QtXml
  • %FREECADLIB%\include\Gts
  • %FREECADLIB%\include\zlib
Libs

Add the following search path to the lib path search list:

  • %FREECADLIB%\lib

Add the following search path to the lib path search list:

  • %FREECADLIB%\lib
Executables

Add the following search path to the executable path search list:

  • %FREECADLIB%\bin
  • TortoiseSVN binary installation directory, usually "C:\Programm Files\TortoiseSVN\bin", this is needed for a distribution build when SubWVRev.exe is used to extract the version number from Subversion.

Add the following search path to the executable path search list:

  • %FREECADLIB%\bin
  • TortoiseSVN binary installation directory, usually "C:\Programm Files\TortoiseSVN\bin", this is needed for a distribution build when SubWVRev.exe is used to extract the version number from Subversion.

Python needed

During the compilation some Python scripts get executed. So the Python interpreter has to function on the OS. Use a command box to check it. If the Python library is not properly installed you will get an error message like Cannot find python.exe. If you use the LibPack you can also use the python.exe in the bin directory.

During the compilation some Python scripts get executed. So the Python interpreter has to function on the OS. Use a command box to check it. If the Python library is not properly installed you will get an error message like Cannot find python.exe. If you use the LibPack you can also use the python.exe in the bin directory.

Special for VC8

When building the project with VC8, you have to change the link information for the WildMagic library, since you need a different version for VC6 and VC8. Both versions are supplied in LIBPACK/dll. In the project properties for AppMesh change the library name for the wm.dll to the VC8 version. Take care to change it in Debug and Release configuration.

When building the project with VC8, you have to change the link information for the WildMagic library, since you need a different version for VC6 and VC8. Both versions are supplied in LIBPACK/dll. In the project properties for AppMesh change the library name for the wm.dll to the VC8 version. Take care to change it in Debug and Release configuration.

Compilare

După ce vă conformați tuturor cerințelor prealabile, compilației - sperăm - că doar un clic al mouse-ului în VC va fi suficient

După compilare

După o compilare reușită, pentru a face FreeCAD operațional în mediul compilatorului, trebuie să copiați unele fișiere din LibPack în folderul bin al FreeCAD.exe:

To get FreeCAD up and running from the compiler environment you need to copy a few files from the LibPack to the bin folder where FreeCAD.exe is installed after a successful build:

  • python.exe and python_d.exe from LIBPACK/bin
  • python25.dll and python25_d.dll from LIBPACK/bin
  • python25.zip from LIBPACK/bin
  • make a copy of Python25.zip and rename it to Python25_d.zip
  • QtCore4.dll from LIBPACK/bin
  • QtGui4.dll from LIBPACK/bin
  • boost_signals-vc80-mt-1_34_1.dll from LIBPACK/bin
  • boost_program_options-vc80-mt-1_34_1.dll from LIBPACK/bin
  • xerces-c_2_8.dll from LIBPACK/bin
  • zlib1.dll from LIBPACK/bin
  • coin2.dll from LIBPACK/bin
  • soqt1.dll from LIBPACK/bin
  • QtOpenGL4.dll from LIBPACK/bin
  • QtNetwork4.dll from LIBPACK/bin
  • QtSvg4.dll from LIBPACK/bin
  • QtXml4.dll from LIBPACK/bin

Când se utilizează LibPack cu versiune Python mai veche de 2.5 trebuie să copiați suplimentar 2 fișiere:

  • zlib.pyd și zlib_d.pyd de la LIBPACK/bin/lib.

Acest lucru este necesar pentru ca Python șă poată deschide biblioteca în fițierul arhivat zip Python.

  • _sre.pyd și _sre_d.pyd de la LIBPACK/bin/lib. Acest lucru este necesar pentru ca Python să poată construi sistemul de help.

Dacă nu puteți rula programul din cauza unei erori Python, este mai mult decât probabil că unul dintre fișierele zlib*.pyd lipsește.

Alternativ, puteți să copiați întregul dosar bin al lipback în folderul bin al compilației. Acest lucru este mai ușor, dar necesită timp și spațiu pe disc. Acest lucru se poate face prin crearea de link-uri în loc de a copia fișiere, a se vedeaCompileOnWindows - Reducing Disk Footprint.

Chestiuni suplimentre

Dacă doriți să construiți documentația codului sursă de care aveți nevoie DoxyGen.

To create an intstaller package you need WIX.

Pe durata compilației scriptul Python este executat. Deci, interpretorul Python trebuie să funcționeze corect.

Pentru mai multe detalii aruncați o privire pe README.Linux în sursele dvs.

Mai întâi trebuie să construiți pluginul Qt care oferă toate widgeturile personalizate de FreeCAD de care avem nevoie pentru Qt Designer. Sursele sunt situate sub

//src/Tools/plugins/widget//.

Până acum, nu am oferit un ”makefile” - dar trebuie să-l numiți

qmake plugin.pro
și să-l creați . Odată făcută treaba asta, chemați-l și "make" va crea biblioteca 
//libFreeCAD_widgets.so//.

Pentru a face cunoscută această bibliotecă Qt Designer, trebuie să copiați fișierul

//$QTDIR/plugin/designer//.


References

Tracker/ro
CompileOnUnix/ro