Compile on Linux/it

Panoramica
Nelle distribuzioni Linux recenti FreeCAD si compila facilmente, dato che di solito tutte le dipendenze sono fornite dal gestore di pacchetti. Fondamentalmente si tratta di eseguire 3 passaggi:
 * 1) Ottenere il codice sorgente di FreeCAD
 * 2) Ottenere le dipendenze (i pacchetti da cui dipende FreeCAD)
 * 3) Configurare con  e compilare con

Qui, di seguito, troverete le spiegazioni dettagliate di tutto il processo, delle particolarità che si possono incontrare e alcuni script di compilazione automatica. Se trovate qualcosa di sbagliato o di non aggiornato nel testo successivo (le distribuzioni Linux cambiano spesso), o se utilizzate una distribuzione che non è elencata, discutete il problema nel forum, e aiutateci a correggerlo.





Git
Il modo migliore per ottenere il codice è clonare il repository Git. Per questo è necessario il programma che può essere facilmente installato nella maggior parte delle distribuzioni Linux e può anche essere ottenuto dal sito web ufficiale.

Git può essere installato tramite il seguente comando:

Il seguente comando crea una copia locale della versione più recente del codice sorgente di FreeCAD in una nuova directory chiamata.

Per ulteriori informazioni sull'uso di Git e sul contributo del codice al progetto, vedere Gestione del codice sorgente.



Codice sorgente dall'archivio
In alternativa si può scaricare il sorgente dall' archivio, come file o, e scompattarlo nella directory desiderata.



Ottenere le dipendenze
Per compilare FreeCAD si devono installare le dipendenze necessarie menzionate in Librerie di terze parti; i pacchetti che contengono queste dipendenze sono elencati di seguito per diverse distribuzioni Linux. Si noti che i nomi e la disponibilità delle librerie dipendono dalla propria particolare distribuzione; se la distribuzione è vecchia, alcuni pacchetti potrebbero non essere disponibili o avere un nome diverso. In questo caso, consultare la sezione distribuzioni precedenti e non convenzionali sottostante.

Dopo aver installato tutte le dipendenze, procedere con la compilazione di FreeCAD.

Notare che il codice sorgente di FreeCAD ha una dimensione di circa 500 MB; potrebbe essere tre volte più grande se clonate il repository Git con la sua intera cronologia delle modifiche. Ottenere tutte le dipendenze potrebbe richiedere il download di almeno 500 MB di nuovi file; quando questi file vengono decompressi potrebbero richiedere almeno 1500 MB di spazio. Attenzione anche che il processo di compilazione può generare fino a 1500 MB di file aggiuntivi mentre il sistema copia e modifica l'intero codice sorgente. Pertanto, assicurarsi di disporre di spazio libero sufficiente sul disco rigido, almeno 4 GB, durante il tentativo di compilazione.



Debian e Ubuntu
Sui sistemi basati su Debian (Debian, Ubuntu, Mint, ecc.) è abbastanza facile installare tutte le dipendenze necessarie. La maggior parte delle librerie sono disponibili tramite o il gestore di pacchetti Synaptic.

Se si ha già installato FreeCAD dai repository ufficiali, si possono installare le sue dipendenze di compilazione con questa singola riga di codice in un terminale:

Tuttavia, se la versione di FreeCAD nei repository è vecchia, le dipendenze potrebbero essere quelle sbagliate per compilare una versione recente di FreeCAD. Pertanto, verificare di aver installato i seguenti pacchetti.

Questi pacchetti sono essenziali per il successo di qualsiasi tipo di compilazione:
 * , installa i compilatori C e C++, le librerie di sviluppo C e il programma.
 * , strumento essenziale per configurare il sorgente di FreeCAD. Si potrebbe anche voler installare e  per un'opzione grafica.
 * , strumenti essenziali per produrre librerie condivise.
 * , l'utilità standard di reporting di base è normalmente già installata in un sistema Debian e consente di distinguere programmaticamente tra un'installazione Debian pura o una variante, come Ubuntu o Linux Mint. Non rimuovere questo pacchetto, poiché molti altri pacchetti di sistema potrebbero dipendere da esso.

La compilazione di FreeCAD utilizza il linguaggio Python ed è utilizzato anche in fase di esecuzione come linguaggio di scripting. Se si sta usando una distribuzione basata su Debian, l'interprete Python è normalmente già installato.
 * , lo strumento che crea interfacce tra codice C++ e Python.
 * , lo strumento che crea interfacce tra codice C++ e Python.

Verificare di aver installato Python 3. Python 2 è diventato obsoleto nel 2019, quindi il nuovo sviluppo in FreeCAD non viene testato con questa versione del linguaggio.

Le librerie Boost devono essere installate:



Le librerie di Coin devono essere installate:
 * , per Debian Jessie, Stretch, Ubuntu da 16.04 a 18.10, oppure
 * , per Debian Buster, Ubuntu 19.04 e successivi, così come per Ubuntu 18.04/18.10 con il freecad-stable/freecad-daily PPA aggiunto alle sorgenti software.

Diverse librerie, che si occupano di matematica, superfici triangolate, ordinamento, mesh, visione artificiale, proiezioni cartografiche, visualizzazione 3D, sistema X11 Window, parsing XML e lettura di file Zip:


 * or
 * or
 * or
 * or
 * or
 * or
 * or
 * or



Python 2 e Qt4
Non è raccomandato per le installazioni più recenti in quanto sia Python 2 che Qt4 sono obsoleti. A partire dalla versione 0.20, FreeCAD non li supporta più.

Per compilare FreeCAD per Debian Jessie, Stretch, Ubuntu 16.04, utilizzando Python 2 e Qt4, installare le seguenti dipendenze.





Python 3 e Qt5
Per compilare FreeCAD per Debian Buster, Ubuntu 19.04 e versioni successive, nonché Ubuntu 18.04/18.10 con il freecad-stable/freecad-daily PPA aggiunto alle sorgenti software, installare le seguenti dipendenze.


 * (if compiling 0.20 on a machine that still has Qt4)
 * (if compiling 0.20 on a machine that still has Qt4)
 * (if compiling 0.20 on a machine that still has Qt4)



Kernel OpenCascade
Il kernel OpenCascade è la libreria grafica di base per creare forme 3D. Esiste in una versione ufficiale OCCT e in una versione comunitaria OCE. La versione community non è più consigliata perché obsoleta.

Per Debian Buster e Ubuntu 18.10 e successivi, così come Ubuntu 18.04 con freecad-stable/freecad-daily PPA aggiunto alle tue sorgenti software, installare i pacchetti ufficiali.



Per Debian Jessie, Stretch, Ubuntu 16.04 e versioni successive, installare i pacchetti della community edition.



È possibile installare le librerie singolarmente o utilizzando l'espansione dell'asterisco. Cambiare con  se si vogliono installare le librerie della comunità.



Pacchetti opzionali
Opzionalmente si possono anche installare i seguenti pacchetti extra:
 * , per fare in modo che Coin supporti formati di file immagine aggiuntivi.
 * e (o  per i sistemi precedenti), se si vuole generare la documentazione del codice sorgente.
 * , per il supporto di dispositivi di input 3D, come "Space Navigator" o "Space Pilot" di 3Dconnexion.
 * , se si intende registrare i file installati nel gestore pacchetti del tuo sistema, in modo da poterlo disinstallare in seguito.



Comando Singolo per Python 3 e Qt5
Richiede Pyside2 disponibile in Debian buster e nel freecad-stable/freecad-daily PPA|freecad-stable/freecad-daily PPA.

NOTA: su alcune versioni di Ubuntu e alcune versioni di Qt, si riceverà un errore che python3-pyside2uic non può essere trovato - su quei sistemi puoi tranquillamente ometterlo. Su Ubuntu 20.04 si dovrà aggiungere. Maggiori informazioni possono essere trovate in questa discussione del forum.



Comando Singolo per Python 2 e Qt4
Non raccomandato per le installazioni più recenti in quanto sia Python 2 che Qt4 sono obsoleti.

Gli utenti di Ubuntu 16.04 possono consultare anche la discussione sulla compilazione nel forum: Compilazione su Linux (Kubuntu): CMake non riesce a trovare VTK.

Raspberry Pi
Seguire gli stessi passaggi di Debian e Ubuntu.

Sono stati segnalati problemi durante il tentativo di compilazione in Raspberry PI OS a 32 bit con Python 3 e Qt5, ma la combinazione Python 3 e Qt4 sembra funzionare per le versioni precedenti di FreeCAD (con problemi minori).

Per le versioni più recenti di FreeCAD (>= 0.20) la compilazione con Py3/Qt5 va a buon fine se il sistema operativo installato è Raspberry Pi OS 64-bit o Ubuntu 20.04.

A causa di diversi problemi con Qt, in Ubuntu 20.04 non verranno trovati i normali strumenti PySide.

In questo caso, si possono installare i pacchetti da PyQt e creare collegamenti simbolici agli strumenti necessari.

Ora la compilazione può procedere.

L'opzione di  non dovrebbe essere maggiore di 3 perché il Raspberry Pi ha una memoria limitata. Ci vorranno diverse ore per compilare, quindi è meglio farlo durante la notte.

Per ulteriori informazioni, FreeCAD e Raspberry Pi 4.

Fedora
C'è un bug in cmake distribuito da Fedora 34/35 che fa sì che cmake non riesca a trovare le librerie opencascade. Questo può essere facilmente risolto apportando una piccola modifica al file cmake di livello superiore di opencascade installato su Fedora. Dettagli qui: https://bugzilla.redhat.com/show_bug.cgi?id=2083568.

Nella parte superiore del file, modificare la seguente riga per utilizzare. Questa operazione corregge un bug introdotto dall'uso di un collegamento simbolico da a  di Fedora, che causa l'errore di cmake.

Questo file è solitamente installato in.

cambiare in:

Questa banale modifica deve essere apportata all'interno della directory di build una volta che cmake è stato eseguito e ha avuto esito negativo. La riesecuzione di cmake rileverà quindi correttamente le librerie OCCT nel modo normale.

Sono necessari i seguenti pacchetti:


 * gcc-c++ (or possibly another C++ compiler?)
 * cmake
 * doxygen
 * swig
 * gettext
 * dos2unix
 * desktop-file-utils
 * libXmu-devel
 * freeimage-devel
 * mesa-libGLU-devel
 * opencascade-devel
 * openmpi-devel
 * python3
 * python3-devel
 * python3-pyside2
 * python3-pyside2-devel
 * pyside2-tools
 * boost-devel
 * tbb-devel
 * eigen3-devel
 * qt-devel
 * qt5-qtwebengine-devel
 * qt5-qtxmlpatterns
 * qt5-qtxmlpatterns-devel
 * qt5-qtsvg-devel
 * qt5-qttools-static
 * ode-devel
 * xerces-c
 * xerces-c-devel
 * opencv-devel
 * smesh-devel
 * Coin3
 * Coin3-devel

(Aprile 2021, sono disponibili Coin4 e Coin4-devel) (se coin2 è l'ultimo disponibile per la tua versione di Fedora, usare i packages di http://www.zultron.com/rpm-repo/)


 * SoQt-devel
 * freetype
 * freetype-devel
 * vtk
 * vtk-devel
 * med
 * med-devel

E facoltativamente:


 * libspnav-devel (per il supporto di dispositivi 3Dconnexion come Space Navigator o Space Pilot)
 * python3-pivy ( https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy non è obbligatorio ma necessario per l'ambiente Draft)
 * python3-markdown (affinché Addon Manager visualizzi il markdown nativo)
 * python3-GitPython (affinché Addon Manager utilizzi git per il checkout e l'aggiornamento di workbench e macro)

Per installare tutte le dipendenze contemporaneamente (testato su fedora 36 e 37):

Gentoo
Il modo più semplice per verificare quali pacchetti sono necessari per compilare FreeCAD è verificare tramite portage:

emerge -pv freecad

Questo dovrebbe fornire un bel elenco di pacchetti extra che devi installare sul tuo sistema.

Se FreeCAD non è disponibile su portage, è disponibile su waebbl overlay. Il tracker dei problemi sull'overlay waebbl Github può aiutare a navigare attraverso alcuni problemi, che si potrebbero incontrare. L'overlay fornisce freecad-9999, che si può scegliere di compilare o semplicemente usare per ottenere le dipendenze.

layman -a waebbl

Tumbleweed
I seguenti comandi installeranno i pacchetti richiesti per la creazione di FreeCAD con Qt5 e Python 3.

Il seguente comando installerà Qt Creator e GNU Project Debugger.

Se mancano dei pacchetti, si può controllare il file Tumbleweed "FreeCAD.spec" su Open Build Service.

Inoltre, controllare se ci sono patch che devono essere applicate (come 0001 -find-openmpi2-include-files.patch).

Leap
Se c'è una differenza tra i pacchetti disponibili su Tumbleweed e Leap, allora si può leggere il Leap "FreeCAD.spec " su Open Build Service per determinare i pacchetti richiesti.

Vedere la guida piano_jonas unofficial "Compile On openSUSE".

Arch Linux
Ci sarà bisogno delle seguenti librerie dai repository ufficiali:


 * boost
 * curl
 * desktop-file-utils
 * glew
 * hicolor-icon-theme
 * jsoncpp
 * libspnav
 * opencascade
 * shiboken2
 * xerces-c
 * pyside2
 * python-matplotlib
 * python-netcdf4
 * python-packaging
 * qt5-svg
 * qt5-webengine
 * cmake
 * eigen
 * git
 * gcc-fortran
 * pyside2-tools
 * swig
 * qt5-tools
 * shared-mime-info
 * coin
 * python-pivy
 * med

<span id="Older_and_non-conventional_distributions">

Distribuzioni precedenti e non convenzionali
Su altre distribuzioni, abbiamo pochissimi feedback dagli utenti, quindi potrebbe essere più difficile trovare i pacchetti richiesti.

Inizialmente provare ad individuare le librerie richieste menzionate in librerie di terze parti nel tuo gestore di pacchetti. Attenzione che alcuni di essi potrebbero avere un nome di pacchetto leggermente diverso; cerca, ma anche , , e simili. Se ciò non fosse possibile, provare a compilare tu stesso quelle librerie.

FreeCAD richiede la versione del compilatore GNU g++ uguale o superiore alla 3.0.0, poiché FreeCAD è scritto principalmente in C++. Durante la compilazione vengono eseguiti alcuni script Python, quindi l'interprete Python deve funzionare correttamente. Per evitare qualsiasi problema con il linker è anche una buona idea avere i percorsi della libreria nella variabile o nel file. Questo è già presente nelle moderne distribuzioni Linux, ma potrebbe essere necessario impostarlo in quelle più vecchie.

Pivy
Pivy (Python wrapper per Coin3d) non è necessario per compilare FreeCAD o per avviarlo, ma è necessario come dipendenza di runtime per l'ambiente Draft. Se non si utilizzerà questo ambiente di lavoro, non ci sarà bisogno di Pivy. Tuttavia, si noti che Draft Workbench è utilizzato internamente da altri workbench, come Arch e BIM, quindi Pivy deve essere installato anche per poter utilizzare questi workbench.

Entro novembre 2015 la versione obsoleta di Pivy inclusa nel codice sorgente di FreeCAD non verrà più compilata su molti sistemi. Questo non dovrebbe essere un grosso problema, poiché normalmente si dovrebbe ottenere Pivy dal gestore dei pacchetti della tua distribuzione; se non si riesce a trovare Pivy, si potrebbe doverlo compilare da solo, vedere Istruzioni per la compilazione di Pivy.

<span id="Debug_symbols">

Simboli di Debug
Per risolvere i problemi di crash in FreeCAD, è utile disporre dei simboli di debug di importanti librerie di dipendenze come Qt. A tal fine, si provi ad installare i pacchetti di dipendenza, che terminano con, , o simili, a seconda della propria distribuzione Linux.

Per Ubuntu, potrebbe essere necessario abilitare repository speciali per poter vedere e installare questi pacchetti di debug con il gestore pacchetti. Vedere Pacchetti di simboli di debug per ulteriori informazioni.

<span id="Compile_FreeCAD">

Compilare FreeCAD
FreeCAD utilizza CMake come sistema di compilazione principale, poiché è disponibile su tutti i principali sistemi operativi. La compilazione con CMake è solitamente molto semplice e avviene in due passaggi.


 * 1) CMake verifica che tutti i programmi e le librerie necessari siano presenti sul tuo sistema e genera un  configurato per il secondo passaggio. FreeCAD ha diverse opzioni di configurazione tra cui scegliere, ma viene fornito con impostazioni predefinite ragionevoli. Alcune alternative sono dettagliate di seguito.
 * 2) La compilazione stessa, che viene eseguita con il programma  e che genera gli eseguibili di FreeCAD.

Poiché FreeCAD è un'applicazione di grandi dimensioni, la compilazione dell'intero codice sorgente può richiedere da 10 minuti a un'ora, a seconda della CPU e del numero di core della CPU utilizzati per la compilazione.

È possibile creare il codice all'interno o all'esterno della directory di origine. La compilazione esterna è generalmente l'opzione migliore.

<span id="Out-of-source_build">

Compilazione Out-of-source
Compilare in una cartella separata è più conveniente che compilare nella stessa directory in cui si trova il codice sorgente, poiché ogni volta che aggiorni il codice sorgente CMake può determinare in modo intelligente quali file sono stati modificati e ricompilare solo ciò che è necessario. Questo è molto utile quando si testano diversi rami Git, poiché non si confonde il sistema di compilazione.

Per compilare out-of-source, creare semplicemente una directory di build,, distinta dalla cartella sorgente di FreeCAD, ; quindi da questa directory di build puntare alla cartella di origine corretta. Puoi usare o  invece di  anche nelle istruzioni seguenti. Una volta che ha finito di configurare l'ambiente, usare  per avviare la compilazione vera e propria.

Nota: se si sta compilando il ramo di rilascio 0.19, si deve specificare esplicitamente che si sta compilando con Qt5 e Python 3 -- sostituire il comando cMake sopra con:

L'opzione di  controlla quanti lavori (file) vengono compilati in parallelo. Il programma stampa il numero di core della CPU nel tuo sistema; utilizzandolo insieme all'opzione  si può scegliere di processare tanti file quanti sono i core, in modo da velocizzare la compilazione complessiva del programma. Nell'esempio sopra, si utilizzeranno tutti i core del sistema tranne due; questo manterrà il tuo computer reattivo per altri usi mentre la compilazione procede in background. L'eseguibile di FreeCAD apparirà infine nella directory. Vedere anche Velocizzare la compilazione per migliorare la velocità di compilazione.

<span id="Resolving_cmake_issues">

Risoluzione dei problemi di cmake
Se si è già eseguito una build out-of-source e si rimane bloccati su una dipendenza, che non viene riconosciuta o che non sembra essere risolta, provare quanto segue:


 * Eliminare il contenuto della directory di build prima di eseguire nuovamente cmake. FreeCAD è un obiettivo in rapido movimento, si potrebbe incappare su informazioni cmake memorizzate nella cache che puntano a una versione precedente rispetto a quella che il nuovo head del repository può utilizzare. Svuotare la cache può consentire a cmake di recuperare e riconoscere la versione effettivamente necessaria.


 * Se cmake segnala la mancanza di un file specifico, utilizzare uno strumento come "apt-file search", o il suo equivalente in altri sistemi di pacchetti, per scoprire a quale pacchetto appartiene quel file ed installarlo. Tenere presente, che probabilmente si avrà bisogno della versione -dev del pacchetto,che contiene i file di intestazione o di configurazione necessari a FreeCAD per utilizzare il pacchetto.

<span id="Compiling_against_GNU_libc_2.34_and_later">

Compilazione con GNU libc 2.34 e successivi
GNU libc 2.34 introduce una modifica alla libreria che può causare il fallimento delle build su alcuni sistemi Linux con un errore come:

Per risolvere questo problema, è necessario creare manualmente un collegamento simbolico dal libdl.so.* installato nel sistema (ora vuoto) alla posizione indicata dal compilatore, che sta cercando il file. Ad esempio (se la copia effettivamente installata di libdl.so sul tuo sistema è /usr/lib/x86_64-linux-gnu/libdl.so.2):

Adattare il comando alla struttura del sistema cercando libdl.so* e collegandolo alla posizione appropriata.

<span id="In-source_building">

Compilazione In-source
Le compilazioni in-source vanno bene se si desidera compilare rapidamente una versione di FreeCAD e non s'intenda aggiornare spesso il codice sorgente. In questo caso, si può rimuovere il programma compilato ed il sorgente, semplicemente cancellando una singola cartella.

Passare alla directory di origine e puntare alla directory attuale (indicata da un singolo punto):

L'eseguibile di FreeCAD risiederà quindi nella directory.

<span id="How_to_repair_your_source_code_directory">

Come riparare la directory del codice sorgente
Se si è accidentalmente eseguita una compilazione all'interno della directory del codice sorgente o si sono aggiunti strani file e si desidera ripristinare i contenuti solo nel codice sorgente originale, si possono eseguire i seguenti passaggi.

La prima riga cancella il file. Ciò garantisce che i seguenti comandi di pulizia e ripristino influiranno su tutto nella directory e non ignoreranno gli elementi che corrispondono alle espressioni in. La seconda riga elimina tutti i file e le directory, che non sono tracciati dal repository git; quindi l'ultimo comando ripristinerà qualsiasi modifica ai file tracciati, incluso il primo comando che ha cancellato il file.

Se non si cancella la directory di origine, le successive esecuzioni di potrebbero non acquisire nuove opzioni per il sistema se il codice cambia.

Configurazione
Passando opzioni diverse a, si può modificare il modo in cui FreeCAD viene compilato. La sintassi è la seguente.

Dove è la directory che contiene il codice sorgente. può essere omesso nella maggior parte dei casi. Lo spazio dopo l'opzione può anche essere omesso.

Ad esempio, per evitare di creare l'Ambiente FEM

Tutte le possibili variabili sono elencate nel file, che si trova nella directory. In questo file, cercare la parola per arrivare alle variabili, che possono essere impostate e vedere i loro valori predefiniti.


 * 1) =================   All the options for the build process    =================
 * 1) =================   All the options for the build process    =================

option(BUILD_FORCE_DIRECTORY "The build directory must be different to the source directory." OFF) option(BUILD_GUI "Build FreeCAD Gui. Otherwise you have only the command line and the Python import module." ON) option(FREECAD_USE_EXTERNAL_ZIPIOS "Use system installed zipios++ instead of the bundled." OFF) option(FREECAD_USE_EXTERNAL_SMESH "Use system installed smesh instead of the bundled." OFF) ...

Come alternativa, utilizzare il comando per elencare la configurazione corrente, e quindi tutte le variabili, che possono essere modificate. Si può anche installare ed utilizzare per avviare un'interfaccia grafica, che mostra tutte le variabili che possono essere modificate. Nelle sezioni successive si elencano alcune delle opzioni più rilevanti, che si potrebbe voler utilizzare.

<span id="For_a_Debug_build">

Per una compilazione di Debug
Creare una build per risolvere i problemi di crash in FreeCAD. Attenzione che con questa build l'Ambiente Sketcher diventa molto lento quando sono presenti schizzi complessi.

<span id="For_a_Release_build">

Per una build di rilascio
Creare una build per testare il codice, che non vada in crash. Una build verrà eseguita molto più velocemente di una build.

<span id="Building_against_Python_3_and_Qt5">

Compilare per Python 3 e Qt5
Il supporto per Python 2 e Qt4 è stato rimosso in FreeCAD 0.20 e non è necessario abilitare esplicitamente Qt5 e Python 3 se si compilano le versioni più recenti. Il supporto Qt6 è attualmente in fase di sviluppo, ma non funziona ancora. A meno che non si preveda di assistere nello sforzo di migrazione Qt6, FREECAD_QT_VERSION dovrebbe essere lasciato su "Auto" (impostazione predefinita) o impostato esplicitamente su "5".

Per la 0.20 e 0.21_dev:

Si noti che quando si passa dalla build 0.20 a quella 0.21_dev, potrebbe essere necessario eliminare CMakeCache.txt prima di eseguire cmake.

<span id="Building_for_a_specific_Python_version">

Compilazione per una specifica versione di Python
Se l'eseguibile predefinito nel tuo sistema è un collegamento simbolico a Python 2,  tenterà di configurare FreeCAD per questa versione. Si deve quindi scegliere un'altra versione di Python dando il percorso a uno specifico eseguibile:

Se non dovesse funzionare, potrebbe essere necessario definire variabili aggiuntive, che puntano alle librerie Python desiderate e includere le directory:

È possibile avere diverse versioni indipendenti di Python nello stesso sistema, quindi le posizioni e i numeri di versione dei tuoi file Python dipenderanno dalla tua particolare distribuzione Linux. Usare per visualizzare la versione di Python che si sta usando attualmente; sono necessari solo i primi due numeri; ad esempio, se il risultato è, è necessario specificare le directory relative alla versione 3.6. Se non si conoscono le directory giuste, provare a cercarle con il comando.

Si può usare in un terminale per determinare la directory, o  per i sistemi Debian.

Alcuni componenti di FreeCAD, come PySide, provano a rilevare automaticamente la versione più recente di Python installata sul tuo sistema, che potrebbe fallire se è diversa da quella che si è inserito sopra. L'aggiunta della seguente opzione cMake potrebbe risolvere il problema:

<span id="Building_with_Qt_Creator_against_Python_3_and_Qt5">

Compilare con Qt Creator per Python 3 e Qt5
1. Avviare Qt Creator.

2. Cliccare su.

3. Passare alla directory in cui si trova il codice sorgente,, e scegliere il file più in alto.

4. Selezionando il file, si eseguirà automaticamente su di esso, ma potrebbe fallire se le opzioni appropriate non sono impostate correttamente.

5. Andare a. Impostare la directory di compilazione appropriata,.

6. Impostare le variabili appropriate nella finestra di dialogo Valore-chiave, di tipo e.

7. Se le variabili non caricano correttamente il progetto, potrebbe essere necessario andare su. Quindi premere e aggiungere la configurazione appropriata come descritto sopra. Potrebbe essere necessario aggiungere più variabili sui percorsi Python, se il sistema Python non viene trovato.

7.1. Premere, quindi.

7.2. Assicurarsi che il resto delle opzioni siano impostate correttamente, ad esempio, dovrebbe essere una versione presente installata nel sistema, come.

Premere, quindi per chiudere la configurazione.

Il programma dovrebbe essere eseguito di nuovo automaticamente e dovrebbe riempire l'intera finestra di dialogo Valore-chiave con tutte le variabili, che possono essere configurate.

8. Andare su e scegliere  per compilare la versione grafica di FreeCAD, o  per compilare solo la versione della riga di comando.

9. Infine, andare al menu. Se si tratta di una nuova compilazione, dovrebbero essere necessari diversi minuti, o addirittura ore, a seconda del numero di processori disponibili.

<span id="Qt_designer_plugin">

Plug-in Qt designer
Se si desidera sviluppare codice Qt per FreeCAD, ci sarà bisogno del plug-in Qt Designer, che fornisce tutti i widget personalizzati di FreeCAD.

Andare in una directory ausiliaria del codice sorgente, eseguire con il file di progetto indicato, per creare un ; quindi esegui  per compilare il plugin.

Se si sta compilando per Qt5, assicurarsi che il binario sia quello per questa versione, in modo che il risultante  contenga le informazioni necessarie per Qt5.

dove è la directory, che memorizza le librerie binarie Qt, ad esempio.

La libreria creata è, che deve essere copiata in.

<span id="External_or_internal_Pivy">

Pivy esterno o interno
In precedenza, era inclusa una versione di Pivy nel codice sorgente di FreeCAD (interno). Se si desiderava usare la copia del tuo sistema di Pivy (esterna), si doveva usare.

L'utilizzo di Pivy esterno è diventato l'impostazione predefinita durante lo sviluppo di FreeCAD 0.16, pertanto questa opzione non deve più essere impostata manualmente.

<span id="Doxygen_documentation">

Documentazione Doxygen
Se si ha installato Doxygen si può compilare la documentazione del codice sorgente. Vedere la documentazione del codice sorgente per le istruzioni.

<span id="Additional_documentation">

Informazioni aggiuntive
Il codice sorgente di FreeCAD è molto vasto e con CMake è possibile configurare molte opzioni. Imparare a utilizzare completamente CMake può essere utile per scegliere le opzioni giuste per le tue esigenze particolari.
 * CMake Reference Documentation di Kitware.
 * How to Build a CMake-Based Project (blog) di Preshing sulla programmazione.
 * Learn CMake's Scripting Language in 15 Minutes (blog) di Preshing sulla programmazione.

<span id="Making_a_debian_package">

Creazione di un pacchetto debian
Se si ha intenzione di creare un pacchetto Debian dai sorgenti, si devono prima installare alcuni pacchetti:

Andare nella directory di FreeCAD e chiamare

Una volta compilato il pacchetto, si può usare per controllare se il pacchetto contiene errori

<span id="*.deb_package_with_checkinstall">

Pacchetto *.deb con checkinstall
Lo script Debian permette di creare un pacchetto *.deb che può essere installato e rimosso con i comandi standard. Potrebbe essere necessario installarlo prima (su Ubuntu usare ). È interattivo e richiede le informazioni richieste fornendo impostazioni predefinite utili. Durante il processo viene installato il pacchetto e vengono creati un file *.deb e un archivio di backup.

È una buona idea definire un nome e una breve descrizione per il pacchetto. Il nome deve essere inserito per disinstallarlo nuovamente e la descrizione sarà elencata da. Il nome predefinito "build" non è molto informativo.

Esempio:

Il risultato è un file *.deb nella cartella freecad-build. installerà la build per impostazione predefinita. Ecco come installarlo o disinstallarlo:

grep freecad freecad-test1_20220814-1_amd64.deb sudo dpkg -i freecad-test1_20220814-1_amd64.deb  # install dkpg -l

<span id="Updating_the_source_code">

Aggiornare il codice sorgente
Il sistema CMake permette di aggiornare in modo intelligente il codice sorgente, e ricompilare solo ciò che è cambiato, rendendo più veloci le compilazioni successive.

Spostarsi nella posizione in cui è stato scaricato per la prima volta il codice sorgente di FreeCAD ed estrarre il nuovo codice:

Quindi spostarsi nella directory di build in cui il codice è stato compilato inizialmente ed eseguire, specificando la directory presente (indicata da un punto); quindi attivare la ricompilazione con.

<span id="Uninstalling_the_source_code">

Disinstallazione del codice sorgente
Nel caso in cui il codice sorgente compilato sia stato installato con (per Debian) i file sono stati copiati nella cartella  in diverse sottocartelle. Per la disinstallazione è possibile utilizzare il file. È stato creato nella cartella build durante la compilazione e contiene tutti i file installati. Finché esiste questo file, l'installazione può essere disinstallata.

Risoluzione dei problemi
<span id="For_64_bit_systems">

Per sistemi a 64 bit
Quando si compila FreeCAD per 64 bit, esiste un problema noto con il pacchetto OpenCASCADE (OCCT) a 64 bit. Per far funzionare correttamente FreeCAD, potrebbe essere necessario eseguire lo script e impostare ulteriori :

Per i sistemi basati su Debian questa opzione non è necessaria quando si usano i pacchetti OpenCASCADE precompilati, perché questi impostano internamente il appropriato.

<span id="Automatic_build_scripts">

Script di compilazione automatica
Ecco tutto quello che serve per una compilazione completa di FreeCAD. Si tratta di uno script di approccio e funziona su una distro di recente installazione. I comandi richiedono la password di root per l'installazione dei pacchetti e dei nuovi repository online. Questi script dovrebbero funzionare su versioni a 32 e 64 bit. Sono stati scritti per diverse versioni, e dovrebbero essere eseguibili anche su versioni successive, con o senza grandi cambiamenti.

Se si ha uno script di questo tipo per la propria distribuzione preferita, lo si discuta sul forum di FreeCAD in modo che possa essere incorporato.

Ubuntu
Questi script forniscono un modo affidabile, per installare il set corretto di dipendenze necessarie per creare ed eseguire FreeCAD su Ubuntu. Fanno uso degli archivi dei pacchetti personali di Ubuntu (PPA) e dovrebbero funzionare su qualsiasi versione di Ubuntu considerata dal PPA. Il PPA freecad-daily contempla le versioni recenti di Ubuntu, mentre il +archive/ubuntu/freecad-stable freecad-stable PPA si rivolge alle versioni ufficialmente supportate di Ubuntu.

Questo script installa l'istantanea compilata quotidianamente di FreeCAD e le sue dipendenze. Aggiunge il repository giornaliero, ottiene le dipendenze per creare questa versione e installa i pacchetti richiesti. Successivamente procede a inserire il codice sorgente in una directory particolare, crea una directory di compilazione e vi si modifica, configura l'ambiente di compilazione con e infine compila l'intero programma con. Salvare lo script in un file, renderlo eseguibile ed eseguirlo, ma non usare ; i privilegi di superutente verranno richiesti solo per i comandi selezionati.

Se lo si desidera, si può disinstallare la versione precompilata di FreeCAD lasciando le dipendenze in posizione, tuttavia, lasciare questo pacchetto installato consentirà al gestore di pacchetti di mantenere aggiornate anche le sue dipendenze; questo è utile soprattutto se si intende seguire lo sviluppo di FreeCAD e aggiornare e compilare costantemente i sorgenti dal repository Git.

Lo script precedente presuppone, che si voglia compilare l'ultima versione di FreeCAD, quindi che si stia usando il repository "daily", per ottenere le dipendenze. Tuttavia, si può invece ottenere le dipendenze di build della versione "stabile" per l'attuale versione di Ubuntu. In tal caso, sostituire la parte superiore dello script precedente con le seguenti istruzioni. Per Ubuntu 12.04, omettere dal comando.

Una volta installato il pacchetto dal repository, questo sostituirà l'eseguibile di FreeCAD disponibile dal repository Universe Ubuntu. L'eseguibile sarà chiamato semplicemente, e non.

openSUSE
Non sono necessari repository esterni per compilare FreeCAD. Tuttavia, esiste un'incompatibilità con python3-devel, che deve essere rimossa. FreeCAD può essere compilato da GIT

Dato che si sta usando git, la prossima volta che si desidera compilare non è necessario clonare tutto, basta estrarre da git e ricompilare

Fedora 27/28/29
Postato dall'utente [PrzemoF] nel forum.

{ echo "~/$MAIN_DIR already exist. Quitting.."; exit; } cd $MAIN_DIR git clone https://github.com/FreeCAD/FreeCAD.git mkdir $BUILD_DIR

<span id="Arch_using_AUR">

Arch usando AUR
Arch User Repository (AUR) è una raccolta di ricette create dagli utenti per creare pacchetti, che non sono ufficialmente supportati dai manutentori della distribuzione/comunità. Di solito sono sicuri. Puoi vedere chi mantiene il pacchetto e per quanto tempo lo ha fatto. Si consiglia di controllare i file di compilazione. In quest'area sono disponibili anche software non open source, anche se mantenuti dalla società proprietaria ufficiale.

Prerequisito: git

Passaggi:
 * 1) Aprire un terminale. Facoltativamente, creare una directory, ad es. . Opzionalmente cambiare directory es..
 * 2) Clonare il repository AUR:
 * 3) Inserire la cartella del repository AUR:
 * 4) Compilare, usando Arch makepkg : . Il flag -s o --syncdeps installerà anche le dipendenze richieste.
 * 5) Installare il pacchetto creato: o fare doppio clic su pkgname-pkgver.pkg.tar.xz all'interno del browser dei file.

Per aggiornare FreeCAD all'ultima build basta ripetere dal passaggio 3. Aggiornare il repository AUR quando c'è qualche modifica sostanziale nella ricetta o nuove funzionalità, usando all'interno della cartella.