Compilation sous Unix

From FreeCAD Documentation
Jump to: navigation, search
This page is a translated version of a page CompileOnUnix and the translation is 52% complete.

Sous les distributions GNU/Linux récentes, FreeCAD est généralement facile à compiler, puisque toutes les dépendances sont fournies par le gestionnaire de paquets. Cela se fait en 3 étapes :

  1. Getting the FreeCAD source code
  2. Getting the dependencies (packages FreeCAD depends upon)
  3. Compiling with "cmake . && make"

Below, you'll find detailed explanations of the whole process and particularities you might encounter. If you find anything wrong or out-of-date in the text below (Linux distributions change often), or if you use a distribution which is not listed, please help us correcting it.

Contents

Getting the source

Before you can compile FreeCAD, you need the source code. There are 3 ways to get it:

Git

The quickest and best way to get the code is to clone the read-only git repository (you need the git package installed):
git clone git://git.code.sf.net/p/free-cad/code free-cad-code

This will place a copy of the latest version of the FreeCAD source code in a new directory called "free-cad-code". The first time you try connecting to the free-cad.git.sourceforge.net host, you will receive a message asking to authenticate the sourceforge SSH key, which is normally safe to accept (you can check their SSH keys on the sourceforge website if you are not sure)

Github

There is an always up to date FreeCAD repository on Github: github.com/FreeCAD/FreeCAD_sf_master

Source package

Alternatively you can download a source package, but they could be already quite old so it's always better to get the latest sources via git or github.

Getting the dependencies

To compile FreeCAD under Linux you have to install all libraries mentioned in Third Party Libraries first. Please note that the names and availability of the libraries will depend on your distribution. Note that if you don't use the most recent version of your distribution, some of the packages below might be missing from your repositories. In that case, look in the Older and non-conventional distributions section below.

Skip to Compile FreeCAD

Debian and Ubuntu

On Debian-based systems (Debian, Ubuntu, Mint, etc...) it is quite easy to get all needed dependencies installed. Most of the libraries are available via apt-get or synaptic package manager.
 build-essential
 cmake
 python
 python-matplotlib
 libtool
 either:
      libcoin60-dev (Debian Wheezy, Wheezy-backports, Ubuntu 13.04 and before)
 or:
      libcoin80-dev (Debian unstable(Jesse), testing, Ubuntu 13.10 and forward, See Additional instruction below])
 libsoqt4-dev
 libxerces-c-dev
 libboost-dev
 libboost-filesystem-dev
 libboost-regex-dev
 libboost-program-options-dev 
 libboost-signals-dev
 libboost-thread-dev
 libqt4-dev
 libqt4-opengl-dev
 qt4-dev-tools
 python-dev
 python-pyside
 pyside-tools
 either:
      libopencascade-dev (official opencascade version)
 or: 
      liboce*-dev (opencascade community edition)
      oce-draw
 gfortran
 libeigen3-dev
 libqtwebkit-dev
 libshiboken-dev
 libpyside-dev
 libode-dev
 swig
 libzipios++-dev
 libfreetype6
 libfreetype6-dev
Additional instruction for libcoin80-dev Debian wheezy-backports, unstable, testing, Ubuntu 13.10 and forward Note that liboce*-dev includes the following libraries:
 liboce-foundation-dev 
 liboce-modeling-dev 
 liboce-ocaf-dev 
 liboce-visualization-dev 
 liboce-ocaf-lite-dev  
You may have to install these packages by individual name. Optionally you can also install these extra packages:
 libsimage-dev (to make Coin to support additional image file formats)
 checkinstall (to register your installed files into your system's package manager, so yo can easily uninstall later)
 python-pivy (needed for the 2D Drafting module)
 python-qt4 (needed for the 2D Drafting module)
 doxygen and libcoin60-doc (if you intend to generate source code documentation)
 libspnav-dev (for 3Dconnexion devices support like the Space Navigator or Space Pilot)

Fedora

You need the following packages:
 cmake
 doxygen
 swig
 gcc-gfortran
 gettext
 dos2unix
 desktop-file-utils
 libXmu-devel
 freeimage-devel
 mesa-libGLU-devel
 OCE-devel
 python
 python-devel
 python-pyside-devel
 boost-devel
 tbb-devel
 eigen3-devel
 qt-devel
 qt-webkit-devel
 ode-devel
 xerces-c
 xerces-c-devel
 opencv-devel
 smesh-devel
 coin2-devel
 soqt-devel
 freetype
 freetype-devel
And optionally:
libspnav-devel (for 3Dconnexion devices support like the Space Navigator or Space Pilot)
pivy ( https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy is not mandatory but needed for the Draft module )
Building FreeCAD with coin3 is still more of a hassle on Fedora, since only coin2 is provided in the official repos, but if you wish so anyway, you can avoid to rebuild all the coin3 / soqt / pivy suite by installing coin3-ready packages from http://www.zultron.com/rpm-repo/

Gentoo

You need the following packages to build FreeCAD:
 dev-cpp/eigen
 dev-games/ode
 dev-libs/boost
 dev-libs/xerces-c
 dev-python/pivy
 dev-python/PyQt4
 media-libs/coin
 media-libs/SoQt
 sci-libs/opencascade-6.5
 sys-libs/zlib
 virtual/fortran
 x11-libs/qt-gui
 x11-libs/qt-opengl
 x11-libs/qt-svg
 x11-libs/qt-webkit
 x11-libs/qt-xmlpatterns
 dev-lang/swig-2.0.4-r1
 app-admin/eselect-python-20091230
 dev-lang/python-2.7.2-r3
 dev-util/cmake-2.8.4
 sys-apps/findutils-4.4.0
 freetype
Since the latest opencascade version is not available, you might want to compile opencascade too, hence the following additional libraries are needed:
media-libs/ftgl
virtual/opengl
x11-libs/libXmu
dev-lang/tcl-8.5.9
dev-lang/tk-8.5.9-r1
dev-tcltk/itcl-3.4_beta1
dev-tcltk/itk-3.4_pre20090417
dev-tcltk/tix-8.4.3
x11-libs/gl2ps
sys-devel/automake-1.11
sys-devel/autoconf-2.68
sys-devel/libtool
dev-java/java-config-2.1.11-r3

OpenSUSE

You need the following packages:
 gcc
 cmake
 OpenCASCADE-devel
 libXerces-c-devel
 python-devel
 libqt4-devel
 python-qt4
 Coin-devel
 SoQt-devel
 boost-devel
 libode-devel
 libQtWebKit-devel
 libeigen3-devel
 gcc-fortran
 freetype2
 freetype2-devel
For FreeCAD 0.14 stable and 0.15 unstable you need to add Eigen3 and swig libraries, that don't seem to be in standard repos. You can get them with a one-click install here:

Also, note that the Eigen3 Library from Factory Education was causing problems sometimes, so use the one from the KDE 4.8 Extra repo

Arch Linux

You will need the following libraries from the official repositories:
 boost-libs
 curl
 hicolor-icon-theme
 libspnav
 opencascade
 python2-pivy
 python2-matplotlib
 python2-pyside
 python2-shiboken
 qtwebkit
 shared-mime-info
 xerces-c
 boost
 cmake
 coin
 desktop-file-utils
 eigen
 gcc-fortran
 swig
 xerces-c
Also, make sure to check the AUR for any missing packages that are not on the repositories, currently:
python2-pyside-tools

Older and non-conventional distributions

On other distributions, we have very few feedback from users, so it might be harder to find the required packages. Try first locating the required libraries mentioned in Third Party Libraries. Beware that some of them might have a slightly different package name in your distribution (such as name, libname, name-dev, name-devel, etc...).

You also need the GNU gcc compiler version equal or above 3.0.0. g++ is also needed because FreeCAD is completely written in C++. During the compilation some Python scripts get executed. So the Python interpreter has to work properly. To avoid any linker problems during the build process it is also a good idea to have the library paths either in your LD_LIBRARY_PATH variable or in your ld.so.conf file. This is normally already the case in recent distributions.

For more details have also a look to README.Linux in your sources.

Below is additional help for a couple of libraries that might not be present in your distribution repositories

Eigen 3

La bibliothèque Eigen3 est maintenant requise par le module Sketcher. Sous Ubuntu, cette bibliothèque n'est disponible dans les dépôts qu'à partir d'Ubuntu 11.10. Pour les versions antérieures d'Ubuntu, vous pouvez soit la télécharger ici et l'installer manuellement, ou ajouter le dépôt FreeCAD Daily Builds PPA à vos sources de logiciels avant de l'installer par l'un des moyens listés ci-dessous.

OpenCASCADE community edition (OCE)

Un fork tiré d'OpenCasCade, OpenCASCADE Community edition est beaucoup plus facile à compiler. FreeCAD peut utiliser l'une ou l'autre des versions installées sur votre système, soit la version « officielle » ou la community edition. Le site Web du projet OCE contient des instructions de compilation détaillées.

OpenCASCADE official version

Note: You are advised to use the OpenCasCade community edition above, which is easier to build, but this one works too. Not all Linux distributions have an official OpenCASCADE package in their repositories. You have to check for yourself if one is available for your distribution. At least from Debian Lenny and Ubuntu Intrepid an official .deb package is provided. For older Debian or Ubuntu releases you may get unofficial packages from here. To build your own private .deb packages follow these steps:

wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0.orig.tar.gz
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.dsc
wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.diff.gz

dpkg-source -x opencascade_6.2.0-7.dsc

# Install OCC build-deps
sudo apt-get install build-essential devscripts debhelper autoconf
automake libtool bison libx11-dev tcl8.4-dev tk8.4-dev libgl1-mesa-dev
libglu1-mesa-dev java-gcj-compat-dev libxmu-dev

#Build Opencascade packages. This takes hours and requires 
# at least 8 GB of free disk space
cd opencascade-6.2.0 ; debuild

# Install the resulting library debs
sudo dpkg -i libopencascade6.2-0_6.2.0-7_i386.deb
libopencascade6.2-dev_6.2.0-7_i386.deb

En outre, vous pouvez télécharger et compiler la dernière version disponible de opencascade.org:

Installez le paquet normalement, mais sachez que l'installateur est un programme java qui nécessite l'édition officielle java runtime de Sun (nom du paquet : sun-java6-jre), pas le paquet java open-source (gij) distribué avec Ubuntu. Installez-le au besoin :
sudo apt-get remove gij
sudo apt-get install sun-java6-jre
Prenez garde, si vous utilisez gij java à d'autres applications telles qu'une extension de navigateur, elles ne fonctionneront plus. Si l'installateur ne fonctionne pas, essayez :

java -cp path_to_file_setup.jar <-Dtemp.dir=path_to_tmp_directory> run

Une fois le paquet installé, allez dans le répertoire "ros" à l'intérieur du répertoire opencascade, et faites

./configure --with-tcl=/usr/lib/tcl8.4 --with-tk=/usr/lib/tk8.4

Maintenant vous pouvez compiler. Retournez au dossier ros et faites :

make

Cela prendra beaucoup de temps, peut-être plusieurs heures. Quand c'est terminé, installez en faisant simplement
sudo make install
Les fichiers de bibliothèque seront copiés dans /usr/local/lib ce qui est normal, puisqu'ils seront trouvés automatiquement par n'importe quel programme. En outre, vous pouvez aussi faire

sudo checkinstall

Ce qui fera la même chose que make install, mais créera une entrée dans votre système de gestion de paquets afin de le désinstaller plus facilement éventuellement. Maintenant nettoyez les considérable fichiers de compilation temporaires en faisant

make clean

Erreur possible Nº 1 : Si vous utilisez OCC version 6.2, il est fort possible que le compilateur stoppera tout juste après le début de l'opération "make". Si cela survient, éditez le script "configure", retracez la déclaration CXXFLAGS="$CXXFLAGS ", et remplacez-la par CXXFLAGS="$CXXFLAGS -ffriend-injection -fpermissive". Puis recommencez l'étape configure.

Erreur possible Nº 2 : Il est possible que plusieurs modules (WOKSH, WOKLibs, TKWOKTcl, TKViewerTest et TKDraw) se complaignent qu'ils ne trouvent pas les entêtes tcl/tk. Dans ce cas, puisque l'option n'est pas offerte par le script configure, vous devrez éditer nauellement le makefile de chacun de ces modules : Allez dans adm/make et dans chacun des dossiers des modules fautifs. Éditez le Makefile, et retracez les lignes CSF_TclLibs_INCLUDES = -I/usr/include et CSF_TclTkLibs_INCLUDES = -I/usr/include et ajoutez /tcl8.4 et /tk8.4 afin qu'elles se lisent comme suit : CSF_TclLibs_INCLUDES = -I/usr/include/tcl8.4 et CSF_TclTkLibs_INCLUDES = -I/usr/include/tk8.4

SoQt

La bibliothèque SoQt doit être compilée par rapport à Qt4, ce qui est le cas de la plupart des distributions récentes. Mais lors de l'écriture de cet article, il n'y avait des paquets SoQt4 disponibles que pour Debian, mais pas pour toutes les versions d'Ubuntu. Pour compiler les paquets, suivez les étapes suivantes :
wget http://ftp.de.debian.org/debian/pool/main/s/soqt/soqt_1.4.1.orig.tar.gz
wget http://ftp.de.debian.org/debian/pool/main/s/soqt/soqt_1.4.1-6.dsc
wget http://ftp.de.debian.org/debian/pool/main/s/soqt/soqt_1.4.1-6.diff.gz
dpkg-source -x soqt_1.4.1-6.dsc
sudo apt-get install doxygen devscripts fakeroot debhelper libqt3-mt-dev qt3-dev-tools libqt4-opengl-dev
cd soqt-1.4.1
debuild
sudo dpkg -i libsoqt4-20_1.4.1-6_i386.deb libsoqt4-dev_1.4.1-6_i386.deb libsoqt-dev-common_1.4.1-6_i386.deb
Si votre système est en 64 bits, vous devrez probablement changer i386 par amd64.

Pivy

Pivy n'est pas nécessaire pour compiler FreeCAD ou l'exécuter, mais il est requis par le module 2D Drafting qui ne fonctionnera pas autrement. Si vous ne comptez pas utiliser ce module, vous n'avez pas besoin de pivy. Au moment d'écrire ces lignes, Pivy est très jeune et ne se trouve possiblement pas encore dans les dépôts de votre distribution. Si vous ne trouvez pas Pivy dans les dépôts de paquets de votre distribution, vous pouvez prendre des paquets debian/ubuntu sur la page de téléchargement de FreeCAD :

http://sourceforge.net/projects/free-cad/files/FreeCAD%20Linux/ or compile pivy yourself:

Pivy compilation instructions

Compiler FreeCAD

Utiliser cMake

cMake est un nouveau système de compilation dont l'avantage est d'être commun à plusieurs systèmes d'exploitation (Linux, Windows, MacOSX, etc). FreeCAD utilise désormais cMake comme système de compilation principal. La compilation avec cMake est généralement très simple et se déroule en deux étapes. À la première étape, cMake vérifie que tous les programmes et bibliothèques nécessaires sont présents sur votre système, et configure tout ce qui est nécessaire pour la compilation subséquente. Quelques alternatives vous sont détaillées ci-dessous, mais FreeCAD est livré avec des options par défaut sensées. La seconde étape est la compilation proprement dite, qui produit l'exécutable FreeCAD.

Puisque FreeCAD est une application lourde, la compilation peut prendre un certain temps (environ 10 minutes sur un PC rapide, 30 minutes sur un PC lent).

In-source building

FreeCAD can be built in-source, which means that all the files resulting from the compilation stay in the same folder as the source code. This is fine if you are just looking at FreeCAD, and want to be able to remove it easily by just deleting that folder. But in case you are planning to compile it often, you are advised to make an out-of-source build, which offers many more advantages. The following commands will compile freecad:
$ cd freecad (the folder where you cloned the freecad source)
If you installed pivy from source, set the compiler flag to use the correct pivy (via FREECAD_USE_EXTERNAL_PIVY=1). Also, set the build type to debug. (NOTE: the "." and space after the cmake flags are CRITICAL!):

$ cmake -DFREECAD_USE_EXTERNAL_PIVY=1 -DCMAKE_BUILD_TYPE=Debug . $ make

Your FreeCAD executable will then reside in the "bin" folder, and you can launch it with:

$ ./bin/FreeCAD

Compilation hors-source

Si vous comptez suivre l'évolution rapide de FreeCAD, il est beaucoup plus pratique de le compiler dans un dossier séparé de la source. Chaque fois que vous mettez à jour le code source, cMake distinguera intelligemment quels fichiers ont changé, et ne compilera que ce qui est requis. Les compilation hors-source sont particulièrement pratiques avec le système Git, puisque vous pouvez facilement essayer d'autres branches sans embrouiller le système de compilation. Pour compiler hors-source, créez un dossier de compilation distinct du dossier source freecad, et depuis le dossier de compilation, pointez cMake vers le dossier source :
mkdir freecad-build
cd freecad-build
cmake ../freecad (or whatever the path is to your FreeCAD source folder)
make
Votre exécutable résidera dans le dossier "bin".

Options de configuration

Il existe un certain nombre de modules expérimentaux ou inachevés que vous pourriez vouloir compiler afin de travailler sur ceux-ci. Pour ce faire, vous devez régler les options appropriées lors de l'étape de configuration. Faites-le soit en ligne de commande, en passant les options -D <var>:<type>=<value> à cMake ou en utilisant une des interfaces graphiques disponibles pour cMake (par ex. pour Debian, les paquets cmake-qt-gui ou cmake-curses-gui).

À titre d'exemple, pour configurer en ligne de commande la compilation du module Assembly, faites :
cmake -D FREECAD_BUILD_ASSEMBLY:BOOL=ON ''path-to-freecad-root''
Les options possibles sont listées dans le fichier CmakeLists.txt situé à la racine du dossier source FreeCAD.

Using autotools

Autotools has been deprecated in favour of cMake, but old versions of FreeCAD were able to be built with Autotools. You must have automake and libtool installed on your system; on Debian/Ubuntu:
aptitude install automake libtool
Si vous avez obtenu les sources depuis git ou subversion, la première étape doit être

./autogen.sh

ce qui génère le script configure et plus. Pour le processus de compilation en lui-même, nous fournissons un script de configuration. Tapez simplement

./configure

Afin de tout configurer. Si vous voulez un aperçu de toutes les options de configuration possibles, vous pouvez taper

./configure --help

Généralement, aucun option ne sera nécessaire - à moins qu'une de vos bibliothèques ne soit installée dans un répertoire hors de l'ordinaire. Lorsque la configuration est terminée, la compilation de FreeCAD est aussi simple que

make

Si des erreurs surviennent pendant la compilation des sources, veuillez d'abord revérifier cette page ainsi que le fichier README.Linux file, puis vous pouvez aller sur le système de gestion de bogues sur SourceForge, cliquez sur « Afficher les bogues » et regardez les rapports existants sur les problèmes de compilation. Après la compilation avec succès de FreeCAD, faites

make install

pour l'installer sur votre PC. Le répertoire d'installation par défaut est

~/FreeCAD

Il s'agit d'un dossier FreeCAD se trouvant dans votre Dossier personnel, vous n'avez donc pas besoin des droits d'administration. Plutôt que de faire make install, vous pouvez aussi faire

checkinstall

De cette façon FreeCAD sera installé par votre système de gestion de paquets, rendant la désinstallation ultérieure plus facile. Mais puisque l'installation de FreeCAD réside entièrement dans un simple répertoire, vous pouvez le désinstaller simplement en supprimant ce répertoire.

Greffon Qt designer

Si vous voulez faire du développement Qt pour FreeCAD, vous aurez besoin du greffon Qt designer qui fournit tous les widgets personnalisés de FreeCAD. Allez dans
freecad/src/Tools/plugins/widget
Pour l'instant nous ne fournissons pas de makefile -- mais appeler
qmake plugin.pro
le génère. Une fois que c'est fait,

make

créera la bibliothèque libFreeCAD_widgets.so. Pour faire en sorte que cette bibliothèque soit reconnue par Qt Designer, vous devez copier le fichier vers $QTDIR/plugin/designer

Doxygen

Si vous vous sentez assez audacieux pour vous plonger dans le code, vous pourriez tirer avantage à construire et consulter la documentation source de FreeCAD générée par Doxygen.

Construire un paquet Debian

Si vous envisagez de construire un paquet Debian voici les sources que vous devez installer en premier :
dh-make
devscripts
lintian (optional, used for checking if packages are standard-compliant)
Pour construire un paquet ouvrez une console, puis il suffit d'aller dans le répertoire FreeCAD et l’appeler

debuild

Once the package is built, you can use lintian to check if the package contains errors
lintian your-fresh-new-freecad-package.deb (replace by the name of the package you just created)

Dépannage

Note sur les systèmes 64 bits

Pour la compilation de FreeCAD pour 64 bits, il y a un problème connu avec le paquet OpenCASCADE 64 bits. Afin que FreeCAD s'exécute correctement, vous pourriez devoir exécuter le script ./configure avec le réglage additionnel define _OCC64 :
./configure CXXFLAGS="-D_OCC64"
Sous les systèmes basés sur Debian, cette solution n'est pas requise avec l'utilisation du paquet précompilé OpenCASCADE, puisque celui-ci est déja compilé avec ce réglage. Maintenant il ne reste plus qu'à compiler FreeCAD tel que décrit ci-dessus.

Macros Automake

Le script configure de FreeCAD utilise plusieurs macros automake qui ne sont parfois pas installées avec leurs paquets : bnv_have_qt.m4, coin.m4, et gts.m4. Au besoin (erreur lors de la configuration), faites une recherche Google à leur sujet et vous devriez facilement les trouver. Il ne s'agit que de simples scripts que vous placerez dans votre dossier /usr/share/aclocal.

Fedora 13

Fedora 13

Pour compiler et installer FreeCAD sous Fedora 13, quelques trucs et astuces sont nécessaires :

  • Installez un tas de paquets requis, la plupart sont disponibles dans les dépôts de Fedora 13
  • Téléchargez et compilez xerces
  • Téléchargez et compilez OpenCascade. Il doit être pointé vers xmu: ./configure --with-xmu-include=/usr/include/X11/Xmu --with-xmu-library=/usr/lib
  • Téléchargez et compilez Pivy. Vous devez supprimer 2 références au fichier non-existant "SoQtSpaceball.h" de pivy/interfaces/soqt.i Commenter ces deux lignes permettra à la compilation et l'installation de réussir.
  • Configurez Freecad. Vous devez le faire pointer vers : ./configure --with-qt4-include=/usr/include --with-qt4-bin=/usr/lib/qt4/bin --with-occ-lib=/usr/local/lib --with-occ-include=/usr/local/inc --with-xercesc-lib=/usr/local/lib
  • make - rencontre un problème et la compilation échoue parce que les ldflags pour soqt sont réglés à "-LNONE" ce qui bloque libtool. Ma solution un peu bancale a été de modifier /usr/lib/Coin2/conf/soqt-default.cfg pour que les ldflags soient "" au lieu de "-LNONE". Après ça -> succès !
  • make install

Ubuntu Lucid

Dans Ubuntu Lucid, vous n'avez pas besoin de qtwebkit-dev, car il est inclus dans qt4-dev.

Automatic build scripts

Here is all what you need for a complete build of FreeCAD. It's a one-script-approach and works on a fresh installed distro. The commands will ask for root password (for installation of packages) and sometime to acknowledge a fingerprint for an external repository server or https-subversion repository. This scripts should run on 32 and 64 bit versions. They are written for distinct version, but are also likely to run on a later version with or without minor changes.

If you have such a script for your preferred distro, please send it! We will incorporate it into this article.

Ubuntu 10.04 LTS - Lucid Lynx / Ubuntu 10.10 Maverick Meerkat / Ubuntu 11.04 Natty Narwhal

Note that this script starts by adding the FreeCAD Daily Builds PPA repository so it can proceed with the Eigen3 library (libeigen3-dev) installation. If you already have this library installed on your system, you can remove the first line.

sudo add-apt-repository ppa:freecad-maintainers/freecad-daily && sudo apt-get update
sudo apt-get install build-essential python libcoin60-dev libsoqt4-dev \
libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \
libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \
libboost-serialization-dev libboost-signals-dev libboost-regex-dev libboost-thread-dev \
libqt4-dev qt4-dev-tools python2.7-dev libopencascade-dev libsoqt4-dev \
libode-dev subversion cmake libeigen2-dev libsimage-dev python-qt4 \
libtool autotools-dev automake bison flex gfortran libeigen3-dev libqtwebkit-dev git
 
# checkout the latest source
git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad freecad
 
# go to source dir
cd freecad
 
# build configuration 
cmake .
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

# use FreeCAD
./FreeCAD<

# Update latest version

# go to source dir
cd freecad
 
# Update source
git pull
 
# build configuration 
cmake .
 
# build FreeCAD
make

OpenSUSE 12.2

No external Repositories are needed to compile FreeCAD 0.13 with this release. However, there is an imcompatability with python3-devel which needs to be removed. FreeCAD can be compiled from GIT similar to in OpenSUSE 12.2
# install needed packages for development
sudo zypper install gcc cmake OpenCASCADE-devel libXerces-c-devel \
python-devel libqt4-devel python-qt4 Coin-devel SoQt-devel boost-devel \
libode-devel libQtWebKit-devel libeigen3-devel gcc-fortran git swig
 
# create new dir, and go into it
mkdir FreeCAD-Compiled 
cd FreeCAD-Compiled
 
# get the source
git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad
 
# Now you will have subfolder in this location called free-cad. It contains the source
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build1
cd FreeCAD-Build1 
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Since you are using git, next time you wish to compile you do not have to clone everything, just pull from git and compile once more

# go into free-cad dir created earlier
cd free-cad
 
# pull
git pull
 
# get back to previous dir
cd ..
 
# Now repeat last few steps from before.
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build2
cd FreeCAD-Build2
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

OpenSUSE 12.1

For FreeCAD 0.13 unstable you need to add Eigen3 and swig libraries, that don't seem to be in standard repos. You can get them with one-click install here:

# install needed packages for development sudo zypper install gcc cmake OpenCASCADE-devel libXerces-c-devel \ python-devel libqt4-devel python-qt4 Coin-devel SoQt-devel boost-devel \ libode-devel libQtWebKit-devel libeigen3-devel gcc-fortran git # create new dir, and go into it mkdir FreeCAD-Compiled cd FreeCAD-Compiled # get the source git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad # Now you will have subfolder in this location called free-cad. It contains the source # make another dir for compilation, and go into it mkdir FreeCAD-Build1 cd FreeCAD-Build1 # build configuration cmake ../free-cad # build FreeCAD make # test FreeCAD cd bin ./FreeCAD -t 0

Since you are using git, next time you wish to compile you do not have to clone everything, just pull from git and compile once more

# go into free-cad dir created earlier
cd free-cad
 
# pull
git pull
 
# get back to previous dir
cd ..
 
# Now repeat last few steps from before.
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build2
cd FreeCAD-Build2
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

OpenSUSE 11.2

This script is not working at the moment because:

  • libXerces-c-devel seems to have disappeared ....
     
    
  1. install needed packages for development

sudo zypper install gcc cmake subversion OpenCASCADE-devel \ libXerces-c-devel python-devel libqt4-devel python-qt4 \ Coin-devel SoQt-devel boost-devel libode-devel libQtWebKit-devel \ libeigen2-devel gcc-fortran

  1. get the source

git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad freecad

  1. go to source dir

cd freecad

  1. build configuration

cmake .

  1. build FreeCAD

nice make

  1. test FreeCAD

cd bin ./FreeCAD -t 0

OpenSUSE 11.1

# additional repository (for OpenCascade)
sudo zypper -p http://packman.unixheads.com/suse/11.1/
 
# install needed packages for development
sudo zypper install gcc cmake subversion OpenCASCADE-devel \
libXerces-c-devel python-devel libqt4-devel  python-qt4 \
Coin-devel SoQt-devel boost-devel libode-devel libQtWebKit-devel \
libeigen2-devel
 
# get the source
git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad freecad
 
# go to source dir
cd freecad
 
# build configuration 
cmake .
 
# build FreeCAD
nice make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Debian Squeeze

# get the needed tools and libs
sudo apt-get install build-essential python libcoin60-dev libsoqt4-dev \
libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \
libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \
libboost-serialization-dev libboost-signals-dev libboost-regex-dev \
libqt4-dev qt4-dev-tools python2.5-dev \
libsimage-dev libopencascade-dev \
libsoqt4-dev libode-dev subversion cmake libeigen2-dev python-pivy \
libtool autotools-dev automake gfortran
 
# checkout the latest source
git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad freecad
 
# go to source dir
cd freecad
 
# build configuration 
cmake .
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Updating the source code

FreeCAD development happens fast, everyday or so there are bug fixes or new features. The cmake systems allows you to intelligently update the source code, and only recompile what has changed, making subsequent compilations very fast. Updating the source code with git or subversion is very easy:
cd freecad (or where you cloned the source code the first time)
git pull (if you are using git)
Move into the appropriate build directory and run cmake again (as cmake updates the version number data for the Help menu, ...about FreeCAD), however you do not need to add the path to source code after "cmake", just a space and a dot:
cd ../freecad-build (or wherever your build directory is located)
 
cmake .
 
make
< précédent: CompileOnWindows
suivant: CompileOnMac >
Index
Other languages:Czech 2% • ‎German 1% • ‎English 100% • ‎Spanish 35% • ‎French 52% • ‎Italian 2% • ‎Polish 2% • ‎Portuguese 2% • ‎Brazilian Portuguese 2% • ‎Romanian 2% • ‎Russian 1% • ‎Northern Sami 1% • ‎Swedish 1% • ‎Turkish 2%
Personal tools
Namespaces

Variants
Actions
Users documentation
Powerusers documentation
Developers documentation
Help & Feedback
Meta
Toolbox