Questo articolo spiega passo dopo passo come compilare FreeCAD su Windows.
Per creare un ramo locale e scaricare il codice sorgente è necessario aprire un terminale (prompt dei comandi) e portarsi nella directory (cd) in cui si desidera creare il sorgente, quindi digitare:
git clone https://github.com/FreeCAD/FreeCAD.git free-cad-code
In Windows, il compilatore di default è MS Visual Studio, sia che si tratti della versione Express oppure Completa 2008, 2012, o 2013. Inoltre è necessario installare la piattaforma Windows SDK per disporre delle diverse librerie richieste (e.g. Windows.h), anche se esse possono non essere richieste con i compilatori MS (sia full che express).
Per chi vuole evitare l'installazione completa dell'ingombrante Visual Studio al solo scopo di avere un compilatore può vedere Compilare in Windows - Occupare meno spazio.
Though it may be possible to use Cygwin or MinGW gcc it's not tested or ported so far.
Per compilare correttamente FreeCAD, servono tutte le Librerie di terze parti . Se si usa i compilatori MS si raccomanda di installare FreeCAD LibPack,che fornisce tutte le librerie necessarie per costruire FreeCAD in Windows. Serve il Libpack adatto alla propria architettura e compilatore. Attualmente FreeCAD fornisce Libpack Version11 per x32 e x64, per VS9 2008, VS11 2012, e VS12 2013.
All'interno del percorso di sistema assicurarsi di impostare i percorsi corretti per i seguenti programmi:
Per aggiungere al percorso di sistema:
Since FreeCAD version 0.9 we have stopped providing .vcproj files.
Currently, FreeCAD uses the CMake build system to generate build and make files that can be used between different operating systems and compilers. If you want build former versions of FreeCAD (0.8 and older) see Building older versions later in this article.
We switched because it became more and more painful to maintain project files for 30+ build targets and x compilers. CMake gives us the possibility to support alternative IDEs, like Code::Blocks, Qt Creator and Eclipse CDT. The main compiler is still MS VC9 Express, though. But we plan for the future a build process on Windows without proprietary compiler software.
The first step to build FreeCAD with CMake is to configure the environment. There are two ways to do it:
The following process will assume you are using the LipPack. The second option may be discussed
in Options for the Build Process.
This will begin configuration and should fail because the location of
FREECAD_LIBPACK_DIR is unset.
The CMake build system gives us a lot more flexibility over the build process. That means we can switch on and off some features or modules. It's in a way like the Linux kernel build. You have a lot of switches to determine the build process.
Here is the description of some of these switches. They will most likely change a lot in the future because we want to increase the build flexibility a lot more.
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 |
If you are building with Qt Creator, jump to Building with Qt Creator, otherwise proceed to Building with Visual Studio 9 2008.
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
Make sure to specify Visual Studio 12 x64(or the alternate C-Compiler you are using) as the generator in CMake before you continue.
File -> Open -> Project/Solution
This may take a while depending on your sytem
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.
Since early 0.17 cycle Freecad uses c++11 features that are not supported by 2008 version
Now FreeCAD can be built
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.
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
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:
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.
Some search path of Visual Studio need to be set. To change them, use the menu Tools→Options→Directory
Add the following search path to the include path search list:
Add the following search path to the lib path search list:
Add the following search path to the executable path search list:
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.
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.
After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC
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:
When using a LibPack with a Python version older than 2.5 you have to copy two further files:
If you don't get it running due to a Python error it is very likely that one of the zlib*.pyd files is missing.
Alternatively, you can copy the whole bin folder of libpack into bin folder of the build. This is easier, but takes time and disk space. This can be substited by making links instead of copying files, see CompileOnWindows - Reducing Disk Footprint.
If you whant to build the source code documentation you need DoxyGen.
To create an intstaller package you need WIX.
During the compilation some Python scripts get executed. So the Python interpreter has to work properly.
For more details have also a look to README.Linux in your sources.
First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under
//src/Tools/plugins/widget//.
So far we don't provide a makefile -- but calling
qmake plugin.pro
creates it. Once that's done, calling make will create the library
//libFreeCAD_widgets.so//.
To make this library known to your Qt Designer you have to copy the file to
//$QTDIR/plugin/designer//.