Compilation sous Unix

From FreeCAD Documentation
Jump to: navigation, search
This page is a translated version of a page CompileOnUnix and the translation is 85% 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. Télécharger le code source de FreeCAD
  2. Installer les dépendances (les paquets dont FreeCAD dépend)
  3. Compiler avec "cmake . && make"

Vous trouverez ci-dessous des instructions détaillées du processus complet et des particularités que vous pourriez rencontrer. Si vous constatez des informations erronées ou désuètes (les distributions Linux changent régulièrement), ou si vous utilisez une distribution qui n'est pas listée, votre aide pour corriger le tout sera appréciée.

Contents

Obtenir le code source

Avant de compiler FreeCAD, vous avez besoin du code source. Il y a trois moyens de l'obtenir :

Git

La méthode la meilleure et la plus rapide d'obtenir le code est de « cloner » le dépôt Git en lecture seule (il vous faut le paquet git installé):

 git clone git://git.code.sf.net/p/free-cad/code free-cad-code

Ceci place une copie de la plus récente version du code source de FreeCAD dans un nouveau répertoire nommé « freecad ». La première fois que vous vous connectez à l'hôte free-cad.git.sourceforge.net, vous obtiendrez un message vous demandant d'authentifier la clé SSH de Sourceforge. Celle-ci peut normalement être acceptée sans danger (vous pouvez vérifier les clés SSH de SOurceforge sur leur site Web si vous voulez vous en assurer)

Gihub

Il y a également une copie synchronisée régulièrement du dépôt FreeCAD sur GitHub : github.com/FreeCAD/FreeCAD_sf_master

Paquet source

Vous pouvez également télécharger un paquet source, mais celui-ci pourrait être assez vieux ; il est donc préférable de télécharger les sources les plus récentes via git ou github. Dépendant de votre distribution, il y a plusieurs façons d'obtenir un paquet source :

+ Paquets source FreeCAD officiels (indépendants des distributions): https://sourceforge.net/projects/free-cad/files/FreeCAD%20Source/

Obtenir les dépendances

Pour compiler FreeCAD sous Linux, vous devez d'abord installer toutes les bibliothèques mentionnées dans la page Bibliothèques externes. Sous les distributions récentes, il s'agit généralement d'installer quelques paquets.

Debian et Ubuntu

Sous les systèmes basés sur Debian (Debian, Ubuntu, LinuxMint, etc...) , il est très facile d'installer toutes les dépendances requises. La plupart des bibliothèques sont disponibles via apt-get, le gestionnaire de paquets Synaptic, ou le gestionnaire de paquets de votre choix. Ci-dessous sont listés tous les paquets que vous devez installer. Veuillez noter que si vous n'utilisez pas la plus récente version de votre distribution, certains des paquets ci-dessous pourraient ne pas se trouver dans vos dépôts. Dans ce cas, consultez la rubrique Distributions anciennes et non-conventionnelles ci-dessous.

 build-essential
 cmake
 python
 python-matplotlib
 libtool
 either:
      libcoin60-dev (Debian Wheezy, Ubuntu 13.04 and before)
 or:
      libcoin80-dev (Debian wheezy-backports, unstable, 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
 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

Vous pouvez optionnellement installer ces paquets supplémentaires :

 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

Les paquets suivants sont requis :

 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

Et optionnellement :

 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 )

Construire FreeCAD avec coin3 est encore plus difficile qu'avec Fedora, puisque seul coin2 est disponible dans les repos officiels, mais si vous persistez avec coin3, vous pouvez éviter de reconstruire tous les coin3 / soqt / pivy suite en installant des coin3 prêt à être utilisés sur http://www.zultron.com/rpm-repo/

Fedora 20

Install the "free" and "nonfree" Fedora repositories:


$ su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

Now, install the required packages:


$ sudo yum install cmake doxygen swig gcc-gfortran gettext dos2unix desktop-file-utils libXmu-devel freeimage-devel mesa-libGLU-devel OCE-devel python python-devel boost-devel tbb-devel eigen3-devel qt-devel qt-webkit-devel ode-devel xerces-c xerces-c-devel opencv-devel smesh-devel freetype freetype-devel gcc-c++ git libspnav-devel shiboken-devel python-pyside-devel python-matplotlib wget mercurial Coin2-devel

Create a symbolic link so that cmake will find the Coin/Inventor files:


$ sudo ln -s /usr/include/Coin2/Inventor /usr/include/Inventor

Download the tarball for SoQt-1.5.0-10:


$ cd ~/Downloads/
$ wget http://pkgs.fedoraproject.org/repo/pkgs/SoQt/SoQt-1.5.0.tar.gz/9f1e582373d66f556b1db113a93ac68e/SoQt-1.5.0.tar.gz
$ tar -xvf SoQt-1.5.0.tar.gz

Compile SoQt:


$ cd SoQt-1.5.0/
$ ./configure
$ make
$ sudo make install

Download, build and install pivy:


$ cd ~/Downloads/
$ hg clone https://bitbucket.org/Coin3D/pivy pivy-code
$ cd pivy-code
$ python setup.py build
$ sudo python setup.py install

Skip to Compile FreeCAD

Gentoo

Les paquets suivants sont requis :

 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

Puisque les plus récentes bibliothèques opencascade ne sont pas disponibles, vous pourriez vouloir compiler opencascade également. Les bibliothèques supplémentaires suivantes seront alors requises :

 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

Les paquets suivants sont requis :

 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

Pour FreeCAD 0.13 instable, les bibliothèques Eigen3 et swig sont requises, et ne semblent pas être présentes dans les dépôts standards. Vous pouvez les obtenir en installation par simple-clic ici :

 Eigen3: http://software.opensuse.org/search?q=eigen3&baseproject=openSUSE%3A12.1&lang=en&exclude_debug=true
 swig: http://software.opensuse.org/search?q=swig&baseproject=openSUSE%3A12.1&lang=en&exclude_debug=true

Notez également que la Bibliothèque Eigen3 pour Factory Education causait parfois des problèmes, vous pouvez utiliser la Bibliothèque supplémentaire de KDE 4.8 Extra repo

Distributions anciennes et non-conventionnelles

Sous d'autres distributions, nous n'avons que très peu de retours des utilisateurs, il pourrait être plus difficile de trouver les paquets requis. Repérez d'abord les bibliothèques requises mentionnées à la page Bibliothèques externes. Prenez note que certaines de ces bibliothèques pourraient se trouver dans votre distribution sous un nom différent (tel que nom, libnom, nom-dev, nom-devel, etc...).

Vous aurez aussi besoin du GNU gcc compiler en version égale ou supérieur à 3.0.0. g++ est également nécessaire puisque FreeCAD est complètement écrit en C++. Pendant la compilation, quelques script Python sont exécutés. L'interpréteur Python doit donc fonctionner correctement. Pour éviter tout problème avec l'éditeur de liens pendant la compilation, c'est aussi une bonne idée de régler les liens de bibliothèques dans votre variable LD_LIBRARY_PATH ou dans votre fichier ld.so.conf. C'est généralement déjà le cas dans les distributions récentes.

Pour plus de détails, consultez le fichier README.Linux dans vos sources.

Ci-dessous de l'aide supplémentaire pour quelques bibliothèques qui pourraient être absentes des dépôts de votre distribution.

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 version officielle

Note: Nous vous recommandons d'utiliser la OpenCasCade community edition ci-dessus, qui est plus facile à compiler, mais celle-ci fonctionne aussi.

Les distributions Linux n'ont pas toutes les paquets officiels d'OpenCASCADE dans leurs dépôts. Vous devez vérifier par vous-même si votre distribution les intègre. Des paquets .deb officiels sont fournis à partir de Debian Lenny et Ubuntu Intrepid. Pour des versions Debian ou Ubuntu plus anciennes, vous pourrez obtenir des paquets non-officiels ici. Pour compiler vos propres paquets .deb, suivez ces étapes :

 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/

Ou encore compiler pivy par vous-même :

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).

Compilation dans le dossier source

FreeCAD peut être compilé dans le dossier source, ce qui veut dire que les fichiers résultant de la compilation partageront le même dossier que le code source. C'est acceptable si vous ne faites que tester FreeCAD, et que vous voulez le supprimer facilement en effaçant simplement ce dossier. Mais au cas où vous comptez compiler FreeCAD régulièrement, nous vous conseillons de faire une compilation hors-source, qui offre plusieurs avantages. les commandes suivantes compileront 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.

Utiliser autotools

Autotools sera bientôt rendu obsolète en faveur de cMake, mais pour l'instant il est toujours disponible pour compiler FreeCAD. Vous devez avoir installé automake et libtool sur votre système ; sous Debian :

aptitude install automake libtool

Sous Ubuntu :

sudo apt-get install automake libtool
 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

Une fois que le paquet est construit, vous pouvez utiliser lintian pour vérifier si le paquet contient des erreurs lintian votre-nouveau-FreeCAD-package.deb (remplacez le nom du paquet par le nom que que vous venez de créer)

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.

Scripts de compilation automatiques

Voici tout ce dont vous avez besoin pour une compilation complète de FreeCAD. Il s'agit d'une approche en un unique script qui fonctionne sous une distribution fraîchement installée. Les commandes demanderont un mot de passe (pour l'installation des paquets) et parfois reconnaître une empreinte pour un serveur externe ou le dépôt https-subversion. Ces scripts devraient fonctionner autant sous des systèmes 32 bits que 64 bits. Ils sont rédigés pour des versions spécifiques, mais devraient aussi fonctionner sous des versions ultérieures sans changements ou avec changements mineurs.

Si vous avez un tel script pour votre distribution favorite, svp envoyez-le nous ! Nous l'intégrerons dans cet article.

Notez que ce script commence par ajouter le référentiel FreeCAD Daily Builds PPA afin qu'il puisse procéder à l'installation de la bibliothèque Eigen3 (libeigen3-dev). Si cette bibliothèque est déjà installée sur votre système, vous pouvez supprimer la première ligne.

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

 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

Aucuns dépôts externes sont nécessaires pour compiler FreeCAD avec la version 0,13. Cependant, il existe un incompatibilité avec python3-devel qui doit être enlevé. FreeCAD peut être compilé à partir GIT similairement à 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

Après avoir utilisé git, la prochaine fois que vous souhaiterez recompiler vous même, vous n'aurez pas à tout cloner, il vous suffira d'extraire de git et de recompiler une nouvelle fois.

 # 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

Pour FreeCAD 0.13 instable, vous devez installer les bibliothèques Eigen3 et swig, qui ne semblent pas être comprises dans les dépôts officiels. Vous pouvez les installer en un clic ici :

Eigen3: http://software.opensuse.org/search?q=eigen3&baseproject=openSUSE%3A12.1&lang=en&exclude_debug=true

swig: http://software.opensuse.org/search?q=swig&baseproject=openSUSE%3A12.1&lang=en&exclude_debug=true

 # 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

Puisque ce script utilise git, la prochaine fois que vous voulez compiler, nul besoin de cloner tout, faites simplement un "pull" depuis git dans le dossier free-cad que vous aviez créé précédemment, et compilez à nouveau

 # 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

Ce script ne fonctionne pas en ce moment parce que :

  • libXerces-c-devel semble disparu...
 
 # 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
 
 # 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


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

Mettre à jour le code source

Le développement de FreeCAD est très rapide, presque chaque jour des correctifs ou de nouvelles fonctionnalités sont publiées dans la source. Le système cMake permet de mettre à jour le code source de façon intelligente, et ne recompile que ce qui a changé, ce qui accélère les compilation subséquentes. La mise à jour du code source avec git ou subversion est très facile :

 cd freecad (or where you cloned the source code the first time)
 git pull (if you are using git)

Puis, vous n'avez pas besoin d'exécuter la commande cmake à nouveau, seulement :

 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 1% • ‎French 85% • ‎Italian 2% • ‎Polish 2% • ‎Portuguese 4% • ‎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