Compile on Windows/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(125 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

<div class="mw-translate-fuzzy">
{{docnav/de
{{Docnav/de
|[[Tracker|Tracker]]
|[[License/de|Lizenz]]
|[[Compile_on_Linux/Unix|Compile on Linux/Unix]]
|[[Compile_on_Linux/de|Kompilieren unter Linux]]
}}
}}
</div>


<div class="mw-translate-fuzzy">
Diese Seite erklärt Schritt für Schritt, wie FreeCAD 0.18 oder neuer unter Windows kompiliert werden kann.
</div>
{{TOCright}}
{{TOCright}}


Diese Seite erklärt Schritt für Schritt, '''wie man FreeCAD 0.19 oder neuer unter Windows kompiliert''' unter Verwendung von Microsofts MSVC-Kompiler. Für Informationen über die Verwendung von MSYS2/MinGW, siehe [[Compile_on_MinGW/de|Auf MinGW kompilieren]]. Für andere Plattformen siehe [[Compiling/de|Kompilieren]].

<span id="Prerequisites"></span>
== Voraussetzungen ==
== Voraussetzungen ==


Kompilieren von FreeCAD unter Windows erfordert einige Werkzeuge und Bibliotheken.
Zuerst müssen die folgenden erforderlichen Programme und Bibliotheken installiert werden:


<span id="Required"></span>
===Erforderlich===
===Erforderlich===


* Ein Compiler. FreeCAD wurde mit Visual Studio (MSVC) getestet - andere Compiler können funktionieren, aber eine Anleitung zur Verwendung ist hier nicht enthalten. Für weitere Details siehe Abschnitt [[#Compiler|Compiler]], unten.
* [http://git-scm.com/ Git] (Es gibt auch ein GUI Frontend für Git, siehe nächster Abschnitt.)

* [http://git-scm.com/ Git] (Es gibt auch für Git verfügbare GUI Frontends, siehe den nächsten Abschnitt.)

* [https://cmake.org/download/ CMake] Version 3.11.x oder neuer.</br> ''Tipp:'' Wenn du bei der Installation von CMake die Option ''CMake zum System PFAD für alle Benutzer hinzufügen'' wählst, ist CMake von der Windows Eingabeaufforderung aus zugänglich, was nützlich sein kann.


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
* LibPack (auch FreeCADLibs genannt). Dies ist ein einzelnes Paket, das alle Bibliotheken enthält, die notwendig sind, um FreeCAD unter Windows zu kompilieren.
* [http://www.cmake.org/cmake/resources/software.html CMake] Version 3.11.x - 3.15.x. '''Hinweis:''' Normalerweise kann man nicht die neueste CMake Version nehmen. Verwende daher nur eine CMake Version in dem auf dieser Seite angegebenen Bereich!
Lade die Version von LibPack herunter, die zur FreeCAD-Version passt, die du kompilieren möchtest. Um FreeCAD 0.19 oder die letzte Entwicklerversion 0.20 zu kompilieren, lade [https://github.com/apeltauer/FreeCAD/releases/tag/LibPack_12.5.2 LibPack for 0.19/0.20] herunter (nur 64-bit). Entpacke LibPack an einem geeigneten Ord. (Wenn dein Computer die Erweiterung .7z nicht erkennt, solltest du das Programm [https://www.7-zip.org 7-zip] installieren.) </br> '''Hinweis''': Es wird dringend empfohlen, FreeCAD mit der Compiler-Version zu kompilieren, für die das LibPack vorgesehen ist. Du könntest bspw. Probleme bekommen, FreeCAD 0.19 mit MSVC&nbsp;15 zu kompilieren, weil das LibPack für 0.19 für den Compile mit MSVC&nbsp;17 vorgesehen ist.
</div>
</div>


<span id="Optional_programs"></span>
Es wird empfohlen, bei der Installation von CMake die Option ''CMake zum Systempfad für alle Benutzer hinzufügen'' zu verwenden. Dann kannst Du später einfach auf CMake zugreifen, auch über die Befehlszeile/Powershell.

* LibPack (auch FreeCADLibs genannt). Dies ist ein Satz von Bibliotheken, die notwendig sind, um FreeCAD unter Windows zu kompilieren. Je nachdem, welche FreeCAD Version du kompilieren möchtest, musst du das entsprechende LibPack herunterladen. Um beispielsweise FreeCAD 0.18 zu kompilieren, lade entweder die 32bit- oder die 64bit-Version des [https://github.com/FreeCAD/FreeCAD-ports-cache/releases/tag/v0.18 LibPack für 0.18] herunter, um die neueste Entwicklungsversion 0.19 zu kompilieren, lade das [https://github.com/FreeCAD/FreeCAD/releases/tag/0.19_pre LibPack für 0.19] herunter (es gibt nur eine 64bit-Version).

Lade einfach das LibPack herunter, Du wirst es entpacken und später einrichten.

'''Note''': Es wird empfohlen, den gleichen Compiler ''MS Visual Studio'' (MSVC) zu verwenden, für den das LibPack bestimmt ist. Dies stellt sicher, dass die Kompilierung und Ausführung der kompilierten FreeCAD.exe erfolgreich ist. So solltest Du z.B. FreeCAD 0.18 mit dem LibPack für 0.19 und MSVC 15 kompilieren können, aber Du könntest Probleme bekommen, FreeCAD 0.18 mit dem LibPack für 0.18 und MSVC 15 zu kompilieren, da das LibPack für 0.18 für MSVC&nbsp;12 entworfen wurde.

===Optionale Programme===
===Optionale Programme===

* [https://www.python.org/downloads/ Python 3.x]. Eine separate Python-Installation ist nicht erforderlich, da das LibPack Python enthält. Um Dein FreeCAD-Build später testen zu können, ist es jedoch sinnvoll, eine eigenständige Python-Installation zu haben. Es wird empfohlen, nicht die neueste Version zu verwenden, sondern die vorherige Version (z.B. nicht Python 3.7, sondern 3.6).


* Ein GUI Frontend für Git. Es stehen mehrere Frontends zur Verfügung, siehe [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs diese Liste]. Der Hauptvorteil eines Frontends besteht darin, dass Sie die Git-Befehle nicht erlernen müssen, um den Quellcode von FreeCAD zu erhalten oder Patches an das GitHub-Repository von FreeCAD zu senden.
* Ein GUI Frontend für Git. Es stehen mehrere Frontends zur Verfügung, siehe [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs diese Liste]. Der Hauptvorteil eines Frontends besteht darin, dass Sie die Git-Befehle nicht erlernen müssen, um den Quellcode von FreeCAD zu erhalten oder Patches an das GitHub-Repository von FreeCAD zu senden.


Im Folgenden beschreiben wir die Handhabung des Quellcodes über das Frontend [https://tortoisegit.org/ TortoiseGit]. Dieses Frontend ist direkt in den Windows Datei Explorer integriert und verfügt über eine große Benutzer Gemeinschaft um Hilfe bei Problemen zu erhalten.
Im Folgenden beschreiben wir die Handhabung des Quellcodes über das [https://tortoisegit.org/ TortoiseGit] Frontend. Dieses Frontend integriert sich direkt in den Windows Dateiexplorer und verfügt über eine große Benutzer Gemeinschaft, um Hilfe bei Problemen zu erhalten.


* [http://sourceforge.net/projects/nsis/ NSIS] Dies ist das Programm, um den Windows Installer von FreeCAD zu generieren. (Informationen: Für FreeCAD 0.17 und älter wurde das Programm [http://wixtoolset.org/ WiX] zur Erstellung des Installers verwendet.)
* [http://sourceforge.net/projects/nsis/ NSIS] wird verwendet, um das FreeCAD Windows Installationsprogramm zu generieren.


<span id="Source_code"></span>
=== Quellcode ===
=== Quellcode ===


Jetzt kannst Du den Quellcode von FreeCAD bekommen:
Jetzt kannst Du den Quellcode von FreeCAD bekommen:


<span id="Using_a_frontend"></span>
====Verwendung eines Frontend====
====Verwendung eines Frontend====


Bei Verwendung des [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git Frontend] TortoiseGit:
Bei Verwendung des [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git Frontends] TortoiseGit:
# Erstelle einen neuen Ordner, in dem sich der Quellcode befinden sollte.
# Erstelle einen neuen Ordner, in den der Quellcode heruntergeladen werden soll.
# Klicke mit der rechten Maustaste auf diesen Ordner im Windows Datei Explorer und wähle im Kontextmenü '''Git Clone'''.
# Klicke mit der rechten Maustaste auf diesen Ordner im Windows Dateiexplorer und wähle '''Git Clone''' im Kontextmenü.
# Es erscheint ein Dialogfeld. Verwende dort die Internetadresse für das FreeCAD Repository.
# Es erscheint ein Dialogfeld. Gib darin die Internetadresse für das FreeCAD Git Repositorium ein


''https://github.com/FreeCAD/FreeCAD.git''
''https://github.com/FreeCAD/FreeCAD.git''
Line 57: Line 55:
und klicke auf '''OK'''.
und klicke auf '''OK'''.


Nun wird der Quellcode heruntergeladen und sein Ordner wird zu einem Ordner, der von Git nachverfolgt wird.
Der neueste Quellcode wird aus dem FreeCAD Git Repositorium heruntergeladen und der Ordner wird von Git verfolgt.


<span id="Using_the_command_line"></span>
====Verwendung der Kommandozeile====
====Verwendung der Kommandozeile====


Line 67: Line 66:
}}
}}


<span id="Compiler"></span>
===Kompilierer===
===Kompilierer===


Der Standard-Compiler (empfohlen) ist MS Visual Studio (MSVC). Obwohl es möglich sein kann, andere Compiler mit Cygwin oder MinGW gcc zu verwenden, ist es bisher nicht getestet oder portiert worden.
Der Standard Compiler (empfohlen) ist MS Visual Studio (MSVC). Die Verwendung anderer Compiler, z. B. gcc über Cygwin oder MinGW, ist zwar möglich, wird hier aber nicht getestet oder behandelt.


Du kannst eine kostenlose Version von MSVC (für die OpenSource Nutzung) erhalten, indem Du die ''Gemeinschafts'' Edition von MS Visual Studio herunterlädst. Verwende dazu diese URL
Du kannst eine kostenlose Version von MSVC (für den persönlichen Gebrauch) erhalten, indem Du die [https://visualstudio.microsoft.com/vs/community/ ''Gemeinschafts'' Edition von MS Visual Studio] herunterlädst.

<nowiki>https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=xx</nowiki>

wobei xx die Versionsnummer ist. Um also MSVC 15 (auch MSVC 2017 genannt) zu erhalten, verwende diese URL:

https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15


Für diejenigen, die die Installation des riesigen MSVC für den reinen Zweck, einen Compiler zu haben, vermeiden wollen, siehe [[CompileOnWindows - Reducing Disk Footprint]].
Für diejenigen, die die Installation des riesigen MSVC für den reinen Zweck, einen Compiler zu haben, vermeiden wollen, siehe [[CompileOnWindows - Reducing Disk Footprint]].


Hinweis: Obwohl die ''Gemeinschafts'' ausgabe von MSVC kostenlos ist, musst Du in der MSVC IDE ein Microsoft Konto erstellen, damit du die IDE länger als 30 Tage nutzen kannst. Wenn du nur über die Befehlszeile kompilierst, benötigst du die IDE und somit kein Microsoft Konto.
'''Hinweis:''' Obwohl die ''Gemeinschafts''ausgabe von MSVC kostenlos ist, musst du ein Microsoft Konto erstellen, um die IDE länger als eine 30-tägige Testphase zu verwenden. Wenn du nur über die Kommandozeile kompilieren willst, brauchst du die IDE nicht und somit auch kein Microsoft Konto.


Als kostenlose und OpenSource alternative IDE kannst du [https://www.kdevelop.org/download KDevelop] verwenden. Du kannst KDevelop verwenden, um C++-Code zu modifizieren und zu schreiben, musst aber die Befehlszeile zum Kompilieren verwenden.
Als freie und OpenSource alternative IDE kannst du [https://www.kdevelop.org/download KDevelop] verwenden. Du kannst KDevelop zum Ändern und Schreiben von C++ Code verwenden, musst aber die Kommandozeile zum Kompilieren verwenden.


<span id="Optional_system_path_configuration"></span>
===Optionale Systempfad Konfiguration===
===Optionale Systempfad Konfiguration===


Line 105: Line 100:
# Abschließend drücke '''OK''' und schließe alle Dialoge, indem Du ebenfalls '''OK'''' drückst.
# Abschließend drücke '''OK''' und schließe alle Dialoge, indem Du ebenfalls '''OK'''' drückst.


<span id="Configuration"></span>
== Konfiguration ==
== Konfiguration ==


<div class="mw-translate-fuzzy">
===LibPack===
Sobald du alle notwendigen Werkzeuge, Bibliotheken und den FreeCAD-Quellcode hast, bist du bereit für die Konfiguration und den Kompilierungsprozess. Dieser Prozess durchläuft fünf Schritte:

# Führe CMake einmal aus, um dein System zu untersuchen und den Konfigurationsprozess zu beginnen (dieser wird melden, dass er fehlgeschlagen ist).
Zuerst muss ein Buildordner eingerichtet werden:
# Passe die notwendigen CMake-Einstellungen an, um die Position des LibPack zu setzen und Qt5 zu aktivieren.
# Erstelle einen neuen Ordner, in dem sich das kompilierte FreeCAD befinden soll. Es wird dringend empfohlen, dass sich dieser Ordner nicht im Quellcode Ordner von FreeCAD befindet.
# Starte CMake erneut, um die Konfiguration zu finalisieren (dieses Mal sollte es ohne Fehler durchlaufen).
# Erstelle dort einen neuen Unterordner für das LibPack. '''Note:'''Der Name dieses Unterordners muss mit dem LibPack Dateinamen identisch sein. Wenn z.B. das LibPack den Dateinamen ''FreeCADLibs_12.1.2_x64_VC15.7z'' hat, musst Du den Unterordner ''FreeCADLibs_12.1.2_x64_VC15'' nennen.
# Benutze CMake, um das Visual Studio Build System zu generieren.
# Entpacke das LibPack in diesen Unterordner.
# Benutze Visual Studio, um FreeCAD zu kompilieren.
</div>


===CMake===
===CMake===


<div class="mw-translate-fuzzy">
Nun muss die Buildumgebung mit CMake konfiguriert werden:
Konfiguriere zunächst die Bauumgebung mit CMake:
# Öffne das CMake GUI.
# Öffne das CMake GUI.
# Gib dort den Quellordner von FreeCAD an.
# Gib den Quellordner von FreeCAD an.
# Gib den Buildordner an, den du gerade im vorherigen Schritt erstellt hast.
# Gib einen Bauordner an (verwende nicht den Quellordner -- CMake erstellt diesen Ordner, wenn er nicht existiert).
# Klicke auf ''Konfigurieren'''.
# Klicke auf ''Konfigurieren'''.
# In dem erscheinenden Dialogfeld gib den Erzeuger entsprechend an, den Du verwenden möchtest. Für das Standard-MS Visual Studio verwende ''Visual Studio xx 2yyyy'', wobei xx die Compiler Version und 2yyy das Jahr ihrer Veröffentlichung ist. Es wird empfohlen, die Standardoption ''Use default native compilers'' zu verwenden.
# In dem erscheinenden Dialog gib den gewünschten Generator an: In den meisten Fällen wirst du die Voreinstellungen in diesem Dialogfeld verwenden. Für das standardmäßige MS Visual Studio verwende ''Visual Studio xx 2yyy'', wobei xx die Compiler Version und 2yyy das Jahr der Veröffentlichung ist. Es wird empfohlen, die Standardoption ''Use default native compilers'' zu verwenden.
</div>


'''Hinweis:''' Es ist wichtig, die richtige Bitvariante anzugeben. Wenn du die 64bit Variante von LibPack hast, musst du auch den x64 Compiler verwenden.
'''Hinweis:''' Es ist wichtig, die richtige Bitvariante anzugeben. Wenn du die 64-bit Variante von LibPack hast, musst du auch den x64 Compiler verwenden.


Dies wird mit der Konfiguration beginnen und schlägt wegen fehlender Einstellungen fehl.
Dies wird die Konfiguration beginnen und ''wird fehlschlagen'' wegen fehlender Einstellungen. Dies ist normal, du hast den Speicherort des LibPack noch nicht angegeben. Es können jedoch auch andere Fehler auftreten, die weitere Maßnahmen deinerseits erfordern.


<div class="mw-translate-fuzzy">
Wenn es mit der Meldung fehlschlägt, dass Visual Studio nicht gefunden werden konnte, ist die CMake-Unterstützung in MSVC noch nicht installiert. Um das zu tun:
Wenn es mit der Meldung fehlschlägt, dass Visual Studio nicht gefunden werden konnte, ist die CMake Unterstützung in MSVC noch nicht installiert. Um das zu tun:
# Öffne die MSVC IDE.
# Öffne die MSVC IDE.
# Verwende das Menü ToolsGet Tools and Features
# Verwende das Menü WerkzeugeWerkzeuge und Funktionen erhalten
# Aktiviere auf der Registerkarte 'Workloads'' ''Desktop-Entwicklung mit C++'''.
# Aktiviere im Reiter ''Arbeitsauslastungen'' die ''Desktop Entwicklung mit C++''.
# Auf der rechten Seite solltest Du nun sehen, dass die Komponente ''Visual C++ tools for CMake'' installiert wird.
# Auf der rechten Seite solltest Du nun sehen, dass die Komponente ''Visual C++ Werkzeuge für CMake'' installiert wird.
# Installiere es.
# Installiere es.
</div>


<div class="mw-translate-fuzzy">
Wenn es keinen Fehler bei Visual Studio gibt, ist alles in Ordnung, aber CMake kennt noch nicht alle notwendigen Einstellungen. Deshalb jetzt:
Wenn es mit einer Meldung über eine falsche Python-Version oder fehlendes Python fehlschlägt, dann:
# Vergewissere Dich, dass die Suchoption ''Erweitert'' aktiviert ist.
# Verwende das Feld "Suchen:" in CMake, um nach der Zeichenkette "Python" zu suchen.
# Suche in CMake nach der Variable '''FREECAD_LIBPACK_DIR'''' und gib dort den richtigen Speicherort für den LibPack-Ordner an.
# Wenn du dort einen Pfad wie ''C:/Programme/Python38/python.exe'' siehst, hat CMake das Python erkannt, das bereits auf deinem PC installiert ist, aber diese Version ist nicht kompatibel mit dem LibPack. Da das LibPack eine kompatible Version von Python enthält, ändere die folgenden Python Einstellungen in CMake auf dessen Pfade (unter der Annahme, dass das LibPack im Ordner ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17'' liegt):
# Suche nach der Variablen '''BUILD_QT5'''' und aktiviere diese Option.
[[File:CMake_Python_settings.png]]
# Klicke erneut auf ''Configure'''.
</div>


<div class="mw-translate-fuzzy">
Es sollte nun keine Fehler geben. Wenn ja, klicke auf '''Generate''''. Danach kannst Du CMake schließen und mit der Kompilierung von FreeCAD fortfahren. Halte es jedoch für den Fall, dass einige Optionen für den Build-Prozess geändert werden sollen oder müssen, für die erste Kompilierung offen:
Wenn es keinen Fehler zu Visual Studio oder Python gibt, ist alles in Ordnung, aber CMake kennt noch nicht alle notwendigen Einstellungen. Deshalb jetzt:
# Suche in CMake nach der Variable '''FREECAD_LIBPACK_DIR''' und gib den Ort des LibPack Ordners an, den du zuvor heruntergeladen hast.
# Nur beim Kompilieren von FreeCAD 0.19 suche nach der Variable '''BUILD_QT5''' und aktiviere diese Option.
# Klicke erneut auf '''Configure'''.
</div>


Es sollten nun keine Fehler mehr auftreten. Wenn du weiterhin auf Fehler stößt, die du nicht diagnostizieren kannst, besuche das [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] auf der FreeCAD Forum Webseite. Wenn CMake korrekt vorgegangen ist, klicke auf '''Generieren'''. Nachdem dies geschehen ist, kannst du CMake schließen und die Kompilierung von FreeCAD mit Visual Studio starten. Lasse es jedoch für die erste Kompilierung geöffnet, falls du einige Optionen für den Bauprozess ändern willst oder musst.
=== Optionen für den Build Prozess ===


<span id="Options_for_the_build_process"></span>
Das CMake Build System gibt Dir die Flexibilität über den Build Prozess. Das bedeutet, dass du einige Funktionen oder Module über CMake Variablen ein- und ausschalten kannst.
=== Optionen für den Bauprozess ===


Das CMake Bau System gibt dir die Kontrolle über einige Aspekte des Bauprozesses. Insbesondere kannst du einige Funktionen oder Module mit CMake Variablen ein- und ausschalten.
Hier ist eine Beschreibung für einige dieser Variablen:


Hier ist eine Beschreibung einiger dieser Variablen:

<div class="mw-translate-fuzzy">
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|-
|-
! Variable name !! Description !! Default
! Variablenname !! Beschreibung !! Vorgabewert
|-
|-
| BUILD_XXX || Erstelle FreeCAD mit der Komponente XXX. Wenn du z.B. den Arbeitsbereich ''OpenSCAD'' nicht kompilieren willst/musst, deaktiviere die Variable ''BUILD_OPENSCAD''. FreeCAD wird dann nicht über diese Arbeitsbereich verfügen.
| BUILD_XXX || Erstelle FreeCAD mit der Komponente XXX. Falls du bspw. den Arbeitsbereich ''OpenSCAD'' nicht willst/brauchst, deaktiviere die Variable ''BUILD_OPENSCAD''. FreeCAD wird diesen Arbeitsbereich dann nicht enthalten.
'''Hinweis:''' Einige Komponenten werden für andere Komponenten benötigt. Wenn du bspw. ''BUILD_ROBOT'' deaktivierst, wird CMake dich darüber informieren, dass die Komponente ''Path'' nicht korrekt kompiliert werden kann. Prüfe daher die CMake-Ausgaben nach dem Ändern einer BUILD_XXX-Option!

|| hängt davon ab
'''Hinweis:''' Einige Komponenten werden für andere Komponenten benötigt. Wenn Du z.B. das Häkchen entfernst ''BUILD_ROBOT'' CMake wird dich darüber informieren, dass dann die Komponente ''Pfad'' nicht korrekt kompiliert werden kann. Überprüfe daher die CMake Ausgabe, nachdem Sie eine BUILD_XXX Option geändert haben! || hängt davon ab.
|-
|-
| BUILD_ENABLE_CXX_STD || Die Version des C++-Sprachstandards. '''C++14''' ist der höchstmögliche für FreeCAD 0.19, während wenigstens '''C++17''' für FreeCAD 0.20 erforderlich ist. Siehe auch den Hinweis im Abschnitt [[#Bau_mit_Visual_Studio_15_(2017)_und_16_(2019)]]
| CMAKE_INSTALL_PREFIX || Der Ausgabeordner beim Erstellen des Ziels ''INSTALL'', siehe auch Abschnitt [[#Running and installing FreeCAD|Ausführen und Installieren von FreeCAD]] ||| Windows' Standard Programminstallationsordner
|| hängt davon ab
|-
|-
| CMAKE_INSTALL_PREFIX || Das Ausgabeverzeichnis bei der Erstellung des Ziels ''INSTALL'', siehe auch Abschnitt [[#Ausführen_und_Installieren_von_FreeCAD]] || Windows Standard-Programminstallationsverzeichnis
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Kopiert die LibPack Bibliotheken, die zum Ausführen der FreeCAD.exe, in den Buildordner benötigt werden. Siehe auch Abschnitt [[#Running and installing FreeCAD/de|Ausführung und Installation von FreeCAD]]. || OFF
|-
|-
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Kopiert abhängige Bibliotheken in den Build-Ordner, die zur Ausführung von FreeCAD.exe benötigt werden. Siehe auch Abschnitt [[#Ausführen_und_Installieren_von_FreeCAD]].</br> '''Hinweis:''' Die Optionen FREECAD_COPY_XXX erscheinen nur, falls die Bibliotheken nicht bereits kopiert wurden. Falls du also zu einer LibPack-Version wechselst, ist es wichtig, alle Verzeichnisse in deinem Build-Ordner zu löschen AUSSER dem LibPack-Verzeichnis. Lösche in CMake den Cache und starte, als ob du das erste Mal kompilierst und du wirst die FREECAD_COPY_XXX-Optionen sehen. || OFF
| FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Kopiert die LibPack Binärdateien, die zum Ausführen der FreeCAD.exe, in den Buildordner benötigt werden. Siehe auch Abschnitt [[#Running and installing FreeCAD/de|Ausführung und Installation von FreeCAD]].. || OFF
|-
|-
| FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Kopiert LibPack-Binaries in den Build-Ordner, die zur Ausführung von FreeCAD.exe benötigt werden. Siehe auch Abschnitt [[#Ausführen_und_Installieren_von_FreeCAD]] || OFF
| FREECAD_LIBPACK_USE || Schalten Sie die Nutzung des FreeCAD LibPacks ein oder aus. off || ON
|-
|-
| FREECAD_COPY_PLUGINS_BIN_TO_BUILD|| Kopiert Qt-Plugin-Dateien in den Build-Ordner, die zur Ausführung von FreeCAD.exe benötigt werden. Siehe auch Abschnitt [[#Ausführen_und_Installieren_von_FreeCAD]] || OFF
| FREECAD_LIBPACK_DIR || Verzeichnis, in dem sich das LibPack befindet || FreeCAD's source code folder
|-
|-
| FREECAD_LIBPACK_USE || Schaltet die Verwendung von FreeCAD LibPack ein/aus (ON/OFF) || ON
| FREECAD_RELEASE_PDB || Erstellen von Fehlersuch Bibliotheken auch für Veröffentlichungs Builds || ON
|-
| FREECAD_LIBPACK_DIR || Verzeichnis, in dem sich LibPack befindet || FreeCAD's Quell-Code-Verzeichnis
|-
| FREECAD_RELEASE_PDB || Erstelle Debug-Bibliotheken auch für Freigabe-Versionen || ON
|}
|}
</div>


<span id="Building_FreeCAD"></span>
== FreeCAD bauen ==
== FreeCAD bauen ==


<div class="mw-translate-fuzzy">
Abhängig von deinem Compiler wird der Prozess zur Erstellung von FreeCAD etwas anders ablaufen. In den folgenden Abschnitten werden die bekannten Arbeitsabläufe beschrieben.
Abhängig von deinem Compiler wird der Prozess zur Erstellung von FreeCAD etwas anders ablaufen. In den folgenden Abschnitten werden die bekannten Arbeitsabläufe beschrieben.
Wenn Du mit Qt Creator baust, gehe zu [[#Building with Qt Creator/de|Bau mit Qt Erzeuger]], ansonsten fahre direkt fort:
Wenn Du mit Qt Creator baust, gehe zu [[#Building with Qt Creator/de|Bau mit Qt Erzeuger]], ansonsten fahre direkt fort:
</div>


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Building_with_Visual_Studio_15_(2017)_or_newer"></span>
<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
=== Bau mit Visual Studio 15 2017 ===
=== Bau mit Visual Studio 15 (2017) und 16 (2019)===
</div>
</div>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<span id="Release_Build"></span>
<div class="mw-translate-fuzzy">
==== Bau freigeben ====
# Starte das Visual Studio IDE. Dies kann entweder durch Drücken der Schaltfläche ''Projekt öffnen'' in der CMake GUI oder durch Doppelklicken auf die Datei ''FreeCAD.sln'', die Du in Deinem Buildordner findest, geschehen.

# Stelle in der Symbolleiste der MSVC IDE sicher, dass Du für die erste Kompilierung ''Release''' verwendest.
# Starte das Visual Studio IDE. Dies kann entweder durch Drücken der Schaltfläche ''Projekt öffnen'' in der CMake GUI oder durch Doppelklicken auf die Datei ''FreeCAD.sln'', die Du in Deinem Bauordner findest, geschehen.
# Es gibt ein Fenster namens ''Solution''' Explorer. Es listet alle möglichen Kompilierungsziele auf.
# In der Werkzeugleiste der MSVC IDE versichere dich, dass du für die erste Kompilierung ''Release'' verwendest.
</div>
# Es gibt ein Fenster namens ''Solution Explorer''. Es listet alle möglichen Kompilierungsziele auf.
Um eine vollständige Kompilierung zu starten, klicke mit der rechten Maustaste auf das Ziel '''ALL_BUILD''' und wählen dann '''Build'''.
Dies wird nun recht lange dauern.


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Um ein einsatzbereites FreeCAD zu kompilieren, kompiliere das Ziel ''INSTALL'', siehe Abschnitt [[#Running and installing FreeCAD/de|Ausführen und Installieren von FreeCAD]].
Um eine vollständige Kompilierung zu starten, klicke mit der rechten Maustaste auf das Ziel ''ALL_BUILD'' und wähle dann '''Build'''.
Das wird nun ziemlich lange dauern.
</div>
</div>


Wenn Du keine Fehler bekommst, ist das erledigt. '''Herzlichen Glückwunsch!''' Du kannst MSVC beenden oder offen lassen.
Um ein einsatzbereites FreeCAD zu kompilieren, kompiliere das Ziel ''INSTALL'', siehe Abschnitt [[#Running and installing FreeCAD/de|Ausführen und Installieren von FreeCAD]].


<div class="mw-translate-fuzzy">
Wenn Du keine Fehler bekommst, ist das erledigt. "Herzlichen Glückwunsch! Du kannst MSVC beenden oder offen lassen.
'''Hinweis:''' FreeCAD 0.20 erfordert mindestens den C++Sprachstandard Version 17, aber die Drittanbieterkomponente ist noch nicht bereit dafür. Deshalb wirst du Kompilierungsfehler für das Ziel ''ReverseEngineering'' bekommen. Um dies zu beheben, rechtsklicke im MSVC-Solution-Explorer auf dieses Target und wähle im Kontextmenü den letzten Eintrag ''Properties'' (Eigenschaften). Im erscheinenden Dialog ändere '''C++ Language Standard''' auf '''ISO C++14'''. Erstelle das Target '''ALL_BUILD''' erneut.

==== Video Resource ====
An English language tutorial that begins with configuration in CMake Gui and continues to the `Build` command in Visual Studio 16 2019 is available unlisted on YouTube at [https://youtu.be/s4pHvlDOSZQ Tutorial: Build FreeCAD from source on Windows 10].
</div>
</div>
</div>
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Debug_Build"></span>
=== Bau mit Visual Studio 12 2013 ===
==== Fehlersuch Bau ====


Für einen Fehlersuch Bau ist es notwendig, dass das Python verwendet wird, das im LibPack enthalten ist. Um dies zu gewährleisten:
<div class="mw-collapsible-content">
# Suche in der CMake GUI nach "Python".
# Wenn du dort einen Pfad wie ''C:/Programme/Python38/python.exe'' siehst, hat CMake das auf deinem PC installierte Python erkannt und nicht das des LibPack. In diesem Fall passe die verschiedenen Python Einstellungen in CMake wie folgt an (unter der Annahme, dass das LibPack im Ordner ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17'' liegt):
[[File:CMake_Python_settings.png]]


As prerequisite for the debug build, you need to do this:
Stelle sicher, dass Du '''Visual Studio 12 x64''' (oder den alternativen C-Compiler, den Du verwendest) als Erzeuger in CMake angibst, bevor Du weitermachst.
# Copy the content of the LibPack folder ''bind'' to the ''bin'' folder of the FreeCAD build folder (overwrite the existing files).
# Copy the content of the LibPack folder ''libd'' to the ''lib'' folder of the FreeCAD build folder.


<div class="mw-translate-fuzzy">
*Starte Visual Studio 12 2013, indem Du auf das bei der Installation erstellte Desktop Symbol klickst.
Jetzt

# Starte die Visual Studio IDE. Dies kann entweder durch Drücken der Schaltfläche ''Öffne Projekt'' in der CMake GUI geschehen oder durch Doppelklick auf die Datei ''FreeCAD.sln'', die du in deinem Bau Ordner findest.
*Öffne das Projekt durch:
# In der Werkzeugleiste der MSVC IDE versichere dich, dass du für die erste Kompilierung ''Debug'' verwendest.
Datei → Öffnen → Projekt/Lösung
# Es gibt ein Fenster namens ''Solution Explorer''. Es listet alle möglichen Kompilierziele auf. Um eine vollständige Kompilierung zu starten, klicke mit der rechten Maustaste auf das Ziel '''ALL_BUILD''' und wähle dann '''Build''' im Kontextmenü.

Dies wird nun recht lange dauern.
*Öffne FreeCAD_Trunk.sln aus dem Buildordner CMake created.
Wenn keine Kompilierungsfehler aufgetreten sind, kannst du den Debug Build starten:

# Klicke mit der rechten Maustaste auf das Ziel '''FreeCADMain''' und wähle dann im Kontextmenü '''Set as Startup Project'''.
*Schalte die Dropdown-Liste Lösungskonfiguration oben nach unten auf '''Release''' '''X64'''.
# Klicke anschließend in der Werkzeugleiste auf die Schaltfläche mit dem grünen Dreieck '''Local Windows Debugger'''.
Dies kann je nach System eine Weile dauern.
</div>


If there were no compilation errors, and if the '''FREECAD_COPY_*''' options mentioned in the [[#CMake|CMake Configuration step]] above were enabled, you can start the debug build:
*Bau → Lösung erstellen
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.


Dies startet die Erstellung der Debug-Version von FreeCAD und du kannst die MSVC-IDE verwenden, um eine Fehlersuche durchzuführen.
*Das wird lange dauern.....


==== Video Ressource ====
Wenn Du keine Fehler bekommst, bist Du damit fertig. Beende Visual Studio und starte FreeCAD mit einem Doppelklick auf das FreeCAD Symbol im bin Ordner des Build Verzeichnisses.
Ein englischsprachiges Tutorium das mit der Konfiguration in CMake Gui beginnt und mit dem `Build` Befehl in Visual Studio 16 2019 fortgesetzt wird, ist ungelistet auf YouTube unter [https://youtu.be/s4pHvlDOSZQ Tutorium: FreeCAD aus dem Quellcode unter Windows 10 bauen].
</div>
</div>
</div>
</div>
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Building_with_Qt_Creator_(outdated)"></span>
<div class="mw-translate-fuzzy">
=== Bau mit Qt Creator ===
=== Bau mit Qt Creator (veraltet) ===
</div>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<span id="Installation_and_configuration_of_Qt_Creator"></span>
====Installation und Konfiguration des Qt Erzeugers====
====Installation und Konfiguration des Qt Creators====


* Herunterladen und installieren [https://www.qt.io/offline-installers Qt Creator]
* Herunterladen und installieren [https://www.qt.io/offline-installers Qt Creator]
Line 252: Line 282:
*** Deaktiviere das Kontrollkästchen: Stelle das Projekt immer vor der Ausführung bereit.
*** Deaktiviere das Kontrollkästchen: Stelle das Projekt immer vor der Ausführung bereit.


<span id="Import_project_and_building"></span>
====Projektimport und Bau====
====Projektimport und Bau====


Line 272: Line 303:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Command_line_build"></span>
===Kommandozeilen Bau===
===Kommandozeilen Bau===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<div class="mw-translate-fuzzy">
Die Schritte, wie man von der Kommandozeile aus kompiliert, hängen vom Compiler ab. Für MSVC 2017 sind die Schritte:
Die Schritte, wie man von der Kommandozeile aus kompiliert, hängen vom Compiler ab. Für MSVC 2017 sind die Schritte:
# In Windows' Startmenü gehen Sie zu {{MenuCommand/de|Visual Studio 2017 → Visual Studio Tools}} und wähle '''Developer Command Prompt for VS 2017'''.
# In Windows' Startmenü gehen Sie zu {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} und wähle '''Developer Command Prompt for VS 2017'''.
# Wechsle in deinen Buildordner.
# Wechsle in deinen Buildordner.
# Führe den Befehl aus
# Führe den Befehl aus
</div>


{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
Line 287: Line 321:
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}


<div class="mw-translate-fuzzy">
Diese Schritte können auch automatisiert werden. Hier ist zum Beispiel eine Lösung für MSVC 2017:
Diese Schritte können auch automatisiert werden. Hier ist zum Beispiel eine Lösung für MSVC 2017:
# Lade das Skript herunter [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
# Lade das Skript herunter [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
Line 292: Line 327:
# Klicke im Datei Explorer von Windows mit der rechten Maustaste auf Dein Build Verzeichnis und benutze aus dem Kontextmenü ''Befehlszeile hier''.
# Klicke im Datei Explorer von Windows mit der rechten Maustaste auf Dein Build Verzeichnis und benutze aus dem Kontextmenü ''Befehlszeile hier''.
# Führe den Befehl aus
# Führe den Befehl aus
</div>


{{Code|code=compile-FC install}}
{{Code|code=compile-FC install}}
Line 306: Line 342:
</div>
</div>


<span id="Running_and_installing_FreeCAD"></span>
==Ausführen und Installieren von FreeCAD==
==Ausführen und Installieren von FreeCAD==


Line 316: Line 353:
Methode 2 ist die einfachere, da sie automatisch sicherstellt, dass sich alle für die Ausführung der FreeCAD.exe erforderlichen Bibliotheken im richtigen Ordner befinden. Die FreeCAD.exe und die Bibliotheken werden in dem Ordner ausgegeben, den du in der CMake-Variablen ''CMAKE_INSTALL_PREFIX'' angegeben hast.
Methode 2 ist die einfachere, da sie automatisch sicherstellt, dass sich alle für die Ausführung der FreeCAD.exe erforderlichen Bibliotheken im richtigen Ordner befinden. Die FreeCAD.exe und die Bibliotheken werden in dem Ordner ausgegeben, den du in der CMake-Variablen ''CMAKE_INSTALL_PREFIX'' angegeben hast.


<div class="mw-translate-fuzzy">
Für Methode 1 müssen die Bibliotheken in den Ordner ''bin'' deines Buildordners (wo sich die FreeCAD.exe befindet) gelegt werden. Dies ist einfach zu bewerkstelligen:
Für Methode 1 müssen die Bibliotheken in den Ordner ''bin'' deines Buildordners (wo sich die FreeCAD.exe befindet) gelegt werden. Dies ist einfach zu bewerkstelligen:
# Öffne die CMake GUI.
# Öffne die CMake GUI.
# Suche dort nach der Variablenoption ''FREECAD_DEPEND_DIRS_TO_BUILD'' und überprüfe diese.
# Suche dort nach der Variablenoption ''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'' und überprüfe sie. Wenn es keine solche Option gibt, wurden die Bibliotheken bereits kopiert, siehe [[#Options_for_the_build_process/de|Beschreibung der Optionen]].
# Suche dort nach der Variablenoption ''FREECAD_LIBPACK_BIN_TO_BUILD'' und überprüfe diese.
# Suche dort nach der Variablenoption ''FREECAD_LIBPACK_BIN_TO_BUILD'' und überprüfe diese.
# Suche dort nach der Variablenoption ''FREECAD_PLUGINS_BIN_TO_BUILD'' und überprüfe sie.
# Klicke auf '''Konfigurieren'''. Am Ende der Konfiguration kopiert CMake automatisch die notwendigen Bibliotheken aus dem LibPack-Ordner.
# Klicke auf '''Konfigurieren'''. Am Ende der Konfiguration kopiert CMake automatisch die notwendigen Bibliotheken aus dem LibPack Ordner.
</div>

===Troubleshooting===


When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:
Für FreeCAD 0.19 gibt es derzeit nur ein Problem, das manuelle Maßnahmen erfordert:
# Lade die Datei [https://forum.freecadweb.org/download/file.php?id=90273 qwindowsvistastyle.zip] aus dem FreeCAD Forum herunter.
# Erstelle einen neuen Unterordner namens ''styles'' im Ordner ''bin'' (wo sich die FreeCAD.exe befindet).
# Entpacke die ZIP-Datei in diesen Ordner.


* Download the latest release of the program '''Dependencies''': https://github.com/lucasg/Dependencies/releases (choose the file ''Dependencies_x64_Release.zip'')
Dies fügt den notwendigen Stil hinzu, damit FreeCAD wie ein normales Win 10-Programm aussieht. Ansonsten sieht es aus wie unter Windows 98.
* In the FreeCAD [[Python console]] execute these commands:
<nowiki>import os
os.system(r"~\DependenciesGui.exe")</nowiki>
'''Note''': Instead of the ~ you must specify the full path to the ''DependenciesGui.exe'' on your system.
* Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.


<span id="Updating_the_build"></span>
==Aktualisierung des Build==
==Aktualisierung des Build==


Line 335: Line 380:
# Rekompilierung
# Rekompilierung


<span id="Updating_the_source_code"></span>
===Aktualisierung des Quellcodes===
===Aktualisierung des Quellcodes===


<span id="Using_a_frontend"></span>
====Verwendung eines Frontends====
====Verwendung eines Frontends====


Line 345: Line 392:
Klicke abschließend auf ''OK'''.
Klicke abschließend auf ''OK'''.


<span id="Using_the_command_line"></span>
====Verwendung der Kommandozeile====
====Verwendung der Kommandozeile====


Line 355: Line 403:
wobei ''master'' der Name des Hauptentwicklungszweiges ist. Wenn du Code von einem anderen Zweig erhalten möchtest, verwende dessen Namen anstelle von ''master''.
wobei ''master'' der Name des Hauptentwicklungszweiges ist. Wenn du Code von einem anderen Zweig erhalten möchtest, verwende dessen Namen anstelle von ''master''.


<span id="Recompilation"></span>
===Rekompilierung===
===Rekompilierung===


<div class="mw-translate-fuzzy">
# Öffne die MSVC-IDE, indem Du entweder auf die Datei ''FreeCAD.sln'' oder auf die Datei ''ALL_BUILD.vcxproj'' in Deinem Build-Verzeichnis doppelklickst.
# Öffne die MSVC-IDE, indem Du entweder auf die Datei ''FreeCAD.sln'' oder auf die Datei ''ALL_BUILD.vcxproj'' in Deinem Build-Verzeichnis doppelklickst.
# Fahre mit Schritt 2 aus Abschnitt [[#Building_with_Visual_Studio_15_2017|Building with Visual Studio 15 2017]] fort.
# Fahre mit Schritt 2 aus Abschnitt [[#Building_with_Visual_Studio_15_2017|Building with Visual Studio 15 2017]] fort.
</div>


==Updating the LibPack==
==Tools==


If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version [https://github.com/FreeCAD/FreeCAD-LibPack/releases/ here].
In order to join the FreeCAD development you should compile and install the following tools:


To update your LibPack the following recipe is best practice:
===Qt Designer plugin===
# Delete the ''bin'' folder in your build folder.
# Switch to your local LibPack folder and delete everything there.
# Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.
# Open CMake and there press the button '''Configure''' and then the button '''Generate'''. This recreates the ''bin'' folder you just deleted and also copies the new LibPack files into it.
# In CMake click the button '''Open Project''' and the MSVC IDE will open.
# In the MSVC IDE build the target ''INSTALL''.


<span id="Tools"></span>
FreeCAD uses [https://en.wikipedia.org/wiki/Qt_(software) Qt] as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.
==Werkzeuge==


Um an der FreeCAD Entwicklung teilzunehmen, solltest du die folgenden Werkzeuge kompilieren und installieren:
====Installation====


<span id="Qt_Designer_plugin"></span>
To make Qt Designer aware of the FreeCAD widgets, you must
===Qt Designer Zusatzprogramm===


FreeCAD verwendet [https://en.wikipedia.org/wiki/Qt_(software) Qt] als Werkzeugsatz für seine Benutzeroberfläche. Alle Dialoge sind in UI-Dateien eingerichtet, die mit dem Programm [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] bearbeitet werden können, das Teil jeder Qt Installation ist und auch im LibPack enthalten ist. FreeCAD hat seinen eigenen Satz von Qt Widgets, um spezielle Funktionen wie das Hinzufügen einer Einheit zu Eingabefeldern und das Setzen von Voreinstellungen zu ermöglichen.
# Download [https://forum.freecadweb.org/download/file.php?id=107775 this ZIP] file. (Compiled using Qt 5.12, see [[#Compilation|below]].)
# Extract the DLL file in the ZIP and copy it
* If you use the LibPack: to the folder</br>''~\FreeCADLibs_12.1.4_x64_VC15\bin\designer''</br>Since there will only be a ''bin'' folder and you must first create the ''designer'' subfolder.
* If you have a full Qt installation: you can choose between the folder</br>''C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\plugins\designer''</br>or</br>''C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\bin\designer''</br>(adapt the paths to your installation!).


<span id="Compilation"></span>
(Re)Start Qt Designer and check its menu {{MenuCommand|Help → Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.
====Kompilierung====


<div class="mw-translate-fuzzy">
Die DLL kann nicht als Zusatzprogramm geladen werden, wenn sie mit einer anderen Qt Version kompiliert wurde als die, auf der dein Qt Designer/Qt Creator basiert. In diesem Fall musst du die DLL selbst kompilieren. Dies geschieht auf folgende Weise:
</div>


* In the CMake options (see [[Compile_on_Windows#Options_for_the_build_process|this section above]]) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
If you prefer using [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] instead of Qt Designer, the DLL must be placed in this folder:</br>''C:\Qt\Qt5.12.5\Tools\QtCreator\bin\plugins\designer''</br>(Re)Start Qt Creator, switch to the mode '''Design''' and then check the menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.
* open MSVC and build the target '''FreeCAD_widgets'''


As result you will get the plugin file '''FreeCAD_widgets.dll'' in the folder</br>''~\src\Tools\plugins\widget\Release''
====Compilation====


<span id="Installation"></span>
The DLL cannot be loaded as plugin if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. In this case you must compile the DLL by yourself. This is done the following way:
====Einrichtung====


<div class="mw-translate-fuzzy">
# Change to the FreeCAD source folder</br>''~\src\Tools\plugins\widget''
# Laden [https://forum.freecadweb.org/download/file.php?id=124239 diese ZIP Datei] herunter. (Kompiliert mit Qt 5.12, siehe [[#Compilation/de|unten]]).
# Open a MSVC x64 command prompt using the Windows Start menu and change within it to the above folder. It is important that it is the x64 version of the MSVC command prompt!
# Entpacke die DLL Datei in der ZIP Datei und kopiere sie
# Execute this command {{Code|code=qmake -t vclib plugin.pro}}If qmake could not be found, use the full path to it, e.g. for the LibPack it should be this one (adapt it to your installation):</br>''D:\FreeCAD-build\FreeCADLibs_12.1.4_x64_VC15\bin\qmake -t vclib plugin.pro''</br>for a full Qt installation it is</br>''C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\bin\qmake -t vclib plugin.pro''</br> (adapt the paths to your installation!)
* Wenn du das LibPack verwendest: in den Ordner</br>''~\FreeCADLibs_12.5.2_x64_VC17\bin\designer''</br> Da es nur einen ''bin'' Ordner geben wird und du zuerst den Unterordner ''designer'' erstellen musst.
# The call of ''qmake'' created the file '''FreeCAD_widgets.vcxproj''' in the folder ''~\src\Tools\plugins\widget''. Double-click on it and the MSVC IDE will open.
* Wenn du eine vollständige Qt-Installation hast: du kannst wählen zwischen dem Ordner</br>''C:\Qt\Qt5.15.2\msvc2019_64\plugins\designer''</br>oder</br>''C:\Qt\Qt5.15.2\msvc2019_64\bin\designer''(du musst zuerst den Unterordner ''designer'' anlegen.)</br>(passe die Pfade an deine Installation an!).
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.
</div>
# There is a window called ''Solution Explorer''. Right-click there on '''FreeCAD_widgets''' and then choose '''Build'''.
# As result you should now have a '''FreeCAD_widgets.dll''' in the folder ''~\src\Tools\plugins\widget\release'' that you can install as plugin as described above.


<div class="mw-translate-fuzzy">
===Thumbnail Provider===
Starte den Qt Designer (erneut) und überprüfe sein Menü {{MenuCommand|Hilfe → Zusatzprogramme}}. Wenn das Zusatzprogramm '''FreeCAD_widgets.dll''' als geladen aufgeführt ist, kannst du nun FreeCADs .ui Dateien entwerfen und ändern. Falls nicht, musst du die DLL selbst [[#Compilation/de|Kompilieren]].
</div>


<div class="mw-translate-fuzzy">
FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file '''FCStdThumbnail.dll''' installed to Windows.
Wenn du lieber [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] anstelle von Qt Designer verwenden möchtest, muss die DLL in diesem Ordner abgelegt werden:</br>''C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer''</br>(Re)Start Qt Creator, wechsle in den Modus '''Design''' und überprüfe dann das Menü {{MenuCommand|Werkzeuge → Formular Editor → Über Qt Designer Zusatzprogramme}}. Wenn das Zusatzprogramm '''FreeCAD_widgets.dll''' als geladen aufgeführt ist, kannst du nun FreeCADs .ui Dateien entwerfen und ändern. Falls nicht, musst du die DLL selbst [[#Compilation/de|Kompilieren]].
</div>


<span id="Thumbnail_Provider"></span>
====Installation====
====Miniaturansicht Anbieter===


FreeCAD hat die Funktion, Vorschau Miniaturbilder für *.FCStd Dateien bereitzustellen. Das bedeutet, dass im Windows Datei Explorer *.FCStd Dateien mit einem Bildschirmfoto des darin enthaltenen Modells angezeigt werden. Um diese Funktion anbieten zu können, muss FreeCAD die Datei '''FCStdThumbnail.dll''' unter Windows installiert haben.
The DLL is installed this way:
# Download [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] and extract it.
# Open a Windows command prompt with administrator privileges (these privileges are a requirement).
# Change to the folder where the DLL is.
# Execute this command {{Code|code=regsvr32 FCStdThumbnail.dll}}


<span id="Installation"></span>
So check if it works, assure that in FreeCAD the preferences option '''[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]''' is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.
====Einrichtung====


Die DLL wird auf diese Weise installiert:
====Compilation====
# Lade [https://forum.freecadweb.org/download/file.php?id=13404 diese ZIP Datei] herunter und entpacke sie.
# Öffne eine Windows Befehlseingabeaufforderung mit Administratorrechten (diese Rechte sind eine Voraussetzung).
# Wechsle in den Ordner, in dem sich die DLL befindet.
# Führe diesen Befehl aus {{Code|code=regsvr32 FCStdThumbnail.dll}}


Prüfe also, ob es funktioniert, stelle sicher, dass in FreeCAD die Voreinstellungsoption '''[[Preferences_Editor/de#Dokument|Speichern der Miniaturansicht in Projektdatei beim speichern des Dokuments]]''' aktiviert ist und speichere ein Modell. Zeige dann im Windows Explorer den Ordner des gespeicherten Modells in einer Symbolansicht an. Du solltest nun ein Bildschirmfoto des Modells in der Ordneransicht sehen.
To compile the FCStdThumbnail.dll
# Change to the FreeCAD source folder</br>''~\src\Tools\thumbs\ThumbnailProvider''
# Open the CMake GUI
# Specify there as source folder the one you are currently in.
# Use the same folder as build folder.
# Click '''Configure'''
# In the appearing dialog, specify the generator according to the one you want to use. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.</br>'''Note:''' It is important to specify the correct bit variant. If you have the 64bit variant of LibPack you must also use the x64 compiler.
# Click on '''Generate'''.
# You should now have the file '''ALL_BUILD.vcxproj''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider''. Double-click on it and the MSVC IDE will open.
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.
# There is a window called ''Solution Explorer''. Right-click there on '''ALL_BUILD''' and then choose '''Build'''.
# As result you should now have a '''FCStdThumbnail.dll''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider\release'' that you can install as described above.


<span id="Compilation"></span>
====Kompilierung====

Zum Kompilieren von FCStdThumbnail.dll
# Wechsle zum FreeCAD-Quell-Code-Verzeichnis</br>''~\src\Tools\thumbs\ThumbnailProvider''
# Öffne die CMake-GUI
# Gibt dort als Quellverzeichnis das an, in dem du dich gerade befindest.
# Verwende den gleichen Ordner als build-Verzeichnis.
# Klicke '''Konfigurieren'''
# Gib im erscheinenden Dialog den Generator an, den du verwenden möchtest. Für den Standard MS Visual Studio benutze ''Visual Studio xx 2yyy'' wobei xx die Compiler-Version und 2yyy das Jahr ihrer Freigabe ist. Es wird empfohlen, die Vorgabeoption ''Use default native compilers'' zu verwenden.</br>'''Hinweis:''' Es ist wichtig, die richtige Bit-Variante anzugeben. Wenn du die 64-bit-Variante von LibPack hast, musst du auch den x64-Compiler verwenden.
# Klicke auf '''Generieren'''.
# Du sollte nun die Datei '''ALL_BUILD.vcxproj''' im Verzeichnis ''~\src\Tools\thumbs\ThumbnailProvider'' haben. Doppelklicke darauf und die MSVC-IDE wird sich öffnen.
# Stelle in der Werkzeugleiste der MSVC-IDE sicher, dass du das Kompilationsziel ''Release'' verwendest.
# Es gibt ein Fenster namens ''Solution Explorer''. Rechtklicke dort auf '''ALL_BUILD''' und wähle dann '''Build'''.
# Als Ergebnis solltest du nun eine Datei '''FCStdThumbnail.dll''' im Verzeichnis ''~\src\Tools\thumbs\ThumbnailProvider\release'' haben, die du wie oben beschrieben installieren kannst.

<span id="Compiling_Open_Cascade"></span>
<div class="mw-translate-fuzzy">
== OpenCASCADE Kompilieren ==
</div>

<div class="mw-translate-fuzzy">
Das Standard Libpack kommt mit einer Version von OpenCASCADE, die für den allgemeinen Gebrauch geeignet ist. Unter bestimmten Umständen kann es jedoch sinnvoll sein, gegen eine andere Version von OpenCASCADE zu kompilieren, wie z.B. eine der offiziellen Versionen oder einem gepatchten Abzweig. Beachte, dass es keine Garantie dafür gibt, dass FreeCAD mit allen Versionen von OpenCASCADE funktioniert, und dass die Verwendung einer Nicht-Libpack Version nur für fortgeschrittene Benutzer geeignet ist. Beachte auch, dass die Netgen Bibliothek für einige ihrer Funktionen OpenCASCADE verwendet und gegen dieselbe Version von OpenCASCADE kompiliert werden muss, die du beim Kompilieren von FreeCAD verwendest.
</div>

When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.

<div class="mw-translate-fuzzy">
Zuerst beschaffe den OpenCASCADE Quellcode, entweder direkt von der Veröffentlichungsseite [https://old.opencascade.com/content/latest-release OpenCASCADE.org], über [https://git.dev.opencascade.org/repos/occt.git git], oder durch klonen der Abspaltung eines anderen, wie z.B. [https://gitlab.com/blobfish/occt the "blobfish" fork], der von FreeCAD Forumsmitglied [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69] gepflegt wird.
</div>

<div class="mw-translate-fuzzy">
Als nächstes benutze CMake zum konfigurieren des Build-Systems in einer ähnlichen Weise wie bei der Erstellung von FreeCAD. Bemerkenswerte CMake-Options für OpenCASCADE sind:
* '''3RDPARTY_DIR''' - Der Ablageort deiner Drittanbieter-Bibliotheken, typischerweise auf dein FreeCAD-Libpack-Verzeichnis eingestellt
* '''INSTALL_DIR''' - Wohin die fertigen Bibliotheken installiert werden sollen. Eine gute Praxis ist es, ein isoliertes (eigenes) Verzeichnis auf deinem System zu benutzen, anstatt "global" zu installieren oder die Libpack-Version zu überschreiben.
</div>

* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Repeat building the two targets in the '''Debug''' mode.

To build FreeCAD using the self-compiled Open Cascade, you must do the following:
* Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
* Switch to the LibPack folder and go there to the subfolder ''cmake''
* Open there the file ''OpenCASCADEDrawTargets.cmake'' with a text editor
* Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>becomes just </br>''freetype.lib''</br>
* Do the same for the file ''OpenCASCADEVisualizationTargets.cmake''

== Compiling Netgen==

The LibPack comes with a version of [https://ngsolve.org Netgen] that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.

However, you might build Netgen nevertheless. This is an easy task:

* First obtain the Netgen source code, either directly from [https://github.com/NGSolve/netgen Netgen 's git repository].
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
{| class="wikitable" style="text-align:left"
|-
! Variable name !! Description !! Default
|-
| CMAKE_INSTALL_PREFIX|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.
|| C:/netgen
|-
| OpenCasCade_DIR|| The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section [[#Compiling_Open_Cascade|Compiling Open Cascade]] you can use the subfolder ''cmake'' of there folder you used as INSTALL_DIR. If not, use the subfolder ''cmake'' of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder ''lib'' and copy in the files ''freetype.lib'' and ''freetyped.lib'' from your LibPack.
|| empty
|-
| USE_GUI|| set it to '''OFF'''
|| ON
|-
| USE_NATIVE_ARCH|| set it to '''OFF'''; this is only necessary important to support older CPU that don't have the [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2] instruction set
|| ON
|-
| USE_OCC|| set it to '''ON'''
|| OFF
|-
| USE_PYTHON|| set it to '''OFF'''
|| ON
|-
| USE_SUPERBUILD|| set it to '''OFF'''
|| ON
|-
| ZLIB_INCLUDE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Zlib zlib]. It is recommended to use the folder as input where your used LibPack is.
|| empty
|-
| ZLIB_LIBRARY_DEBUG|| The path to the ZLib file ''zlibd.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
|| empty
|-
| ZLIB_LIBRARY_RELEASE|| The path to the ZLib file ''zlib.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
|| empty
|}

* Additionally you need to add a new CMake entry:
name: ''CMAKE_DEBUG_POSTFIX'', type: ''string'', content: '''_d'''</br>
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.

* Press the ''Configure'' button in CMake to generate the *.cmake files.
* Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
** Search your Netgen build folder for the file ''netgen-targets.cmake'' and open it with a text editor. Remove the setting '';/arch:AVX2'' in the Option INTERFACE_COMPILE_OPTIONS.
** Press the ''Configure'' button in CMake again.
* Press the ''Generate'' button in CMake.
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Repeat building the two targets in the '''Debug''' mode.

To build FreeCAD using the self-compiled Netgen, you must do the following:
* Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)

<span id="References"></span>
== Referenzen ==
== Referenzen ==


Siehe auch
Siehe auch
* [[Compile_on_Windows_with_VS2013|Kompilieren unter Windows mit Visual Studio 2013]]
* [[Compiling_(Speeding_up)|Kompilieren - Beschleunigen]]
* [[Compiling_(Speeding_up)|Kompilieren - Beschleunigen]]



<div class="mw-translate-fuzzy">
{{docnav/de
{{Docnav/de
|[[Tracker|Tracker]]
|[[License/de|Lizenz]]
|[[Compile_on_Linux/Unix|Compile on Linux/Unix]]
|[[Compile_on_Linux/de|Kompilieren unter Linux]]
}}
}}
</div>


{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 07:55, 22 April 2024

Diese Seite erklärt Schritt für Schritt, wie man FreeCAD 0.19 oder neuer unter Windows kompiliert unter Verwendung von Microsofts MSVC-Kompiler. Für Informationen über die Verwendung von MSYS2/MinGW, siehe Auf MinGW kompilieren. Für andere Plattformen siehe Kompilieren.

Voraussetzungen

Kompilieren von FreeCAD unter Windows erfordert einige Werkzeuge und Bibliotheken.

Erforderlich

  • Ein Compiler. FreeCAD wurde mit Visual Studio (MSVC) getestet - andere Compiler können funktionieren, aber eine Anleitung zur Verwendung ist hier nicht enthalten. Für weitere Details siehe Abschnitt Compiler, unten.
  • Git (Es gibt auch für Git verfügbare GUI Frontends, siehe den nächsten Abschnitt.)
  • CMake Version 3.11.x oder neuer.
    Tipp: Wenn du bei der Installation von CMake die Option CMake zum System PFAD für alle Benutzer hinzufügen wählst, ist CMake von der Windows Eingabeaufforderung aus zugänglich, was nützlich sein kann.
  • LibPack (auch FreeCADLibs genannt). Dies ist ein einzelnes Paket, das alle Bibliotheken enthält, die notwendig sind, um FreeCAD unter Windows zu kompilieren.

Lade die Version von LibPack herunter, die zur FreeCAD-Version passt, die du kompilieren möchtest. Um FreeCAD 0.19 oder die letzte Entwicklerversion 0.20 zu kompilieren, lade LibPack for 0.19/0.20 herunter (nur 64-bit). Entpacke LibPack an einem geeigneten Ord. (Wenn dein Computer die Erweiterung .7z nicht erkennt, solltest du das Programm 7-zip installieren.)
Hinweis: Es wird dringend empfohlen, FreeCAD mit der Compiler-Version zu kompilieren, für die das LibPack vorgesehen ist. Du könntest bspw. Probleme bekommen, FreeCAD 0.19 mit MSVC 15 zu kompilieren, weil das LibPack für 0.19 für den Compile mit MSVC 17 vorgesehen ist.

Optionale Programme

  • Ein GUI Frontend für Git. Es stehen mehrere Frontends zur Verfügung, siehe diese Liste. Der Hauptvorteil eines Frontends besteht darin, dass Sie die Git-Befehle nicht erlernen müssen, um den Quellcode von FreeCAD zu erhalten oder Patches an das GitHub-Repository von FreeCAD zu senden.

Im Folgenden beschreiben wir die Handhabung des Quellcodes über das TortoiseGit Frontend. Dieses Frontend integriert sich direkt in den Windows Dateiexplorer und verfügt über eine große Benutzer Gemeinschaft, um Hilfe bei Problemen zu erhalten.

  • NSIS wird verwendet, um das FreeCAD Windows Installationsprogramm zu generieren.

Quellcode

Jetzt kannst Du den Quellcode von FreeCAD bekommen:

Verwendung eines Frontend

Bei Verwendung des Git Frontends TortoiseGit:

  1. Erstelle einen neuen Ordner, in den der Quellcode heruntergeladen werden soll.
  2. Klicke mit der rechten Maustaste auf diesen Ordner im Windows Dateiexplorer und wähle Git Clone im Kontextmenü.
  3. Es erscheint ein Dialogfeld. Gib darin die Internetadresse für das FreeCAD Git Repositorium ein

https://github.com/FreeCAD/FreeCAD.git

und klicke auf OK.

Der neueste Quellcode wird aus dem FreeCAD Git Repositorium heruntergeladen und der Ordner wird von Git verfolgt.

Verwendung der Kommandozeile

Um einen lokalen Trackingzweig zu erstellen und den Quellcode herunterzuladen, öffne ein Terminal (Eingabeaufforderung) und wechsle dort in das Verzeichnis, in dem die Quelle gespeichert werden soll, und gib dann ein:

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

Kompilierer

Der Standard Compiler (empfohlen) ist MS Visual Studio (MSVC). Die Verwendung anderer Compiler, z. B. gcc über Cygwin oder MinGW, ist zwar möglich, wird hier aber nicht getestet oder behandelt.

Du kannst eine kostenlose Version von MSVC (für den persönlichen Gebrauch) erhalten, indem Du die Gemeinschafts Edition von MS Visual Studio herunterlädst.

Für diejenigen, die die Installation des riesigen MSVC für den reinen Zweck, einen Compiler zu haben, vermeiden wollen, siehe CompileOnWindows - Reducing Disk Footprint.

Hinweis: Obwohl die Gemeinschaftsausgabe von MSVC kostenlos ist, musst du ein Microsoft Konto erstellen, um die IDE länger als eine 30-tägige Testphase zu verwenden. Wenn du nur über die Kommandozeile kompilieren willst, brauchst du die IDE nicht und somit auch kein Microsoft Konto.

Als freie und OpenSource alternative IDE kannst du KDevelop verwenden. Du kannst KDevelop zum Ändern und Schreiben von C++ Code verwenden, musst aber die Kommandozeile zum Kompilieren verwenden.

Optionale Systempfad Konfiguration

Optional können die Pfade zu einigen Ordnern in die Systemvariable PATH aufgenommen werden. Dies ist hilfreich, wenn du über die Befehlszeile/Powershell auf Programme in diesen Ordnern zugreifen möchtest oder wenn du möchtest, dass spezielle Programme vom Compiler oder CMake gefunden werden. Außerdem kann es notwendig sein, Ordner zum PATH hinzuzufügen, wenn du bei der Installation des Programms nicht die entsprechenden Optionen verwendet hast.

  • Du kannst den Ordner deines LibPacks in deine System PATH Variable aufnehmen. Dies ist nützlich, wenn du vorhast, mehrere Konfigurationen/Versionen von FreeCAD zu erstellen.
  • Wenn du die Option zum Hinzufügen von CMake zum PFAD während der Installation nicht verwendet hast, füge seinen Installationsordner hinzu.

"C:\\Program Files\CMake\CMake\" zum PATH.

  • Wenn du die Option, TortoiseGit während der Installation zum PFAD hinzuzufügen, nicht genutzt hast, füge seinen Installationsordner hinzu.

C:\Program Files\TortoiseGit\bin zum PATH.

Um der PATH Variablen Ordnerpfade hinzuzufügen:

  1. Klicke im Windows-Startmenü mit der rechten Maustaste auf Computer und wähle Eigenschaften.
  2. Klicke im erscheinenden Dialog auf Erweiterte Systemeinstellungen.
  3. Es öffnet sich ein weiterer Dialog. Klicke dort in der Registerkarte Erweitert auf Umgebungsvariablen.
  4. Wieder öffnet sich ein weiterer Dialog. Wähle dann die Variable Pfad und klicke auf Bearbeiten.
  5. Und wieder öffnet sich ein weiterer Dialog. Klicke dort auf New' und füge zum PATH zum Ordner von Git oder dem LibPack hinzu.
  6. Abschließend drücke OK und schließe alle Dialoge, indem Du ebenfalls OK' drückst.

Konfiguration

Sobald du alle notwendigen Werkzeuge, Bibliotheken und den FreeCAD-Quellcode hast, bist du bereit für die Konfiguration und den Kompilierungsprozess. Dieser Prozess durchläuft fünf Schritte:

  1. Führe CMake einmal aus, um dein System zu untersuchen und den Konfigurationsprozess zu beginnen (dieser wird melden, dass er fehlgeschlagen ist).
  2. Passe die notwendigen CMake-Einstellungen an, um die Position des LibPack zu setzen und Qt5 zu aktivieren.
  3. Starte CMake erneut, um die Konfiguration zu finalisieren (dieses Mal sollte es ohne Fehler durchlaufen).
  4. Benutze CMake, um das Visual Studio Build System zu generieren.
  5. Benutze Visual Studio, um FreeCAD zu kompilieren.

CMake

Konfiguriere zunächst die Bauumgebung mit CMake:

  1. Öffne das CMake GUI.
  2. Gib den Quellordner von FreeCAD an.
  3. Gib einen Bauordner an (verwende nicht den Quellordner -- CMake erstellt diesen Ordner, wenn er nicht existiert).
  4. Klicke auf Konfigurieren'.
  5. In dem erscheinenden Dialog gib den gewünschten Generator an: In den meisten Fällen wirst du die Voreinstellungen in diesem Dialogfeld verwenden. Für das standardmäßige MS Visual Studio verwende Visual Studio xx 2yyy, wobei xx die Compiler Version und 2yyy das Jahr der Veröffentlichung ist. Es wird empfohlen, die Standardoption Use default native compilers zu verwenden.

Hinweis: Es ist wichtig, die richtige Bitvariante anzugeben. Wenn du die 64-bit Variante von LibPack hast, musst du auch den x64 Compiler verwenden.

Dies wird die Konfiguration beginnen und wird fehlschlagen wegen fehlender Einstellungen. Dies ist normal, du hast den Speicherort des LibPack noch nicht angegeben. Es können jedoch auch andere Fehler auftreten, die weitere Maßnahmen deinerseits erfordern.

Wenn es mit der Meldung fehlschlägt, dass Visual Studio nicht gefunden werden konnte, ist die CMake Unterstützung in MSVC noch nicht installiert. Um das zu tun:

  1. Öffne die MSVC IDE.
  2. Verwende das Menü Werkzeuge → Werkzeuge und Funktionen erhalten
  3. Aktiviere im Reiter Arbeitsauslastungen die Desktop Entwicklung mit C++.
  4. Auf der rechten Seite solltest Du nun sehen, dass die Komponente Visual C++ Werkzeuge für CMake installiert wird.
  5. Installiere es.

Wenn es mit einer Meldung über eine falsche Python-Version oder fehlendes Python fehlschlägt, dann:

  1. Verwende das Feld "Suchen:" in CMake, um nach der Zeichenkette "Python" zu suchen.
  2. Wenn du dort einen Pfad wie C:/Programme/Python38/python.exe siehst, hat CMake das Python erkannt, das bereits auf deinem PC installiert ist, aber diese Version ist nicht kompatibel mit dem LibPack. Da das LibPack eine kompatible Version von Python enthält, ändere die folgenden Python Einstellungen in CMake auf dessen Pfade (unter der Annahme, dass das LibPack im Ordner D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17 liegt):

Wenn es keinen Fehler zu Visual Studio oder Python gibt, ist alles in Ordnung, aber CMake kennt noch nicht alle notwendigen Einstellungen. Deshalb jetzt:

  1. Suche in CMake nach der Variable FREECAD_LIBPACK_DIR und gib den Ort des LibPack Ordners an, den du zuvor heruntergeladen hast.
  2. Nur beim Kompilieren von FreeCAD 0.19 suche nach der Variable BUILD_QT5 und aktiviere diese Option.
  3. Klicke erneut auf Configure.

Es sollten nun keine Fehler mehr auftreten. Wenn du weiterhin auf Fehler stößt, die du nicht diagnostizieren kannst, besuche das Install/Compile forum auf der FreeCAD Forum Webseite. Wenn CMake korrekt vorgegangen ist, klicke auf Generieren. Nachdem dies geschehen ist, kannst du CMake schließen und die Kompilierung von FreeCAD mit Visual Studio starten. Lasse es jedoch für die erste Kompilierung geöffnet, falls du einige Optionen für den Bauprozess ändern willst oder musst.

Optionen für den Bauprozess

Das CMake Bau System gibt dir die Kontrolle über einige Aspekte des Bauprozesses. Insbesondere kannst du einige Funktionen oder Module mit CMake Variablen ein- und ausschalten.

Hier ist eine Beschreibung einiger dieser Variablen:

Variablenname Beschreibung Vorgabewert
BUILD_XXX Erstelle FreeCAD mit der Komponente XXX. Falls du bspw. den Arbeitsbereich OpenSCAD nicht willst/brauchst, deaktiviere die Variable BUILD_OPENSCAD. FreeCAD wird diesen Arbeitsbereich dann nicht enthalten.

Hinweis: Einige Komponenten werden für andere Komponenten benötigt. Wenn du bspw. BUILD_ROBOT deaktivierst, wird CMake dich darüber informieren, dass die Komponente Path nicht korrekt kompiliert werden kann. Prüfe daher die CMake-Ausgaben nach dem Ändern einer BUILD_XXX-Option!

hängt davon ab
BUILD_ENABLE_CXX_STD Die Version des C++-Sprachstandards. C++14 ist der höchstmögliche für FreeCAD 0.19, während wenigstens C++17 für FreeCAD 0.20 erforderlich ist. Siehe auch den Hinweis im Abschnitt #Bau_mit_Visual_Studio_15_(2017)_und_16_(2019) hängt davon ab
CMAKE_INSTALL_PREFIX Das Ausgabeverzeichnis bei der Erstellung des Ziels INSTALL, siehe auch Abschnitt #Ausführen_und_Installieren_von_FreeCAD Windows Standard-Programminstallationsverzeichnis
FREECAD_COPY_DEPEND_DIRS_TO_BUILD Kopiert abhängige Bibliotheken in den Build-Ordner, die zur Ausführung von FreeCAD.exe benötigt werden. Siehe auch Abschnitt #Ausführen_und_Installieren_von_FreeCAD.
Hinweis: Die Optionen FREECAD_COPY_XXX erscheinen nur, falls die Bibliotheken nicht bereits kopiert wurden. Falls du also zu einer LibPack-Version wechselst, ist es wichtig, alle Verzeichnisse in deinem Build-Ordner zu löschen AUSSER dem LibPack-Verzeichnis. Lösche in CMake den Cache und starte, als ob du das erste Mal kompilierst und du wirst die FREECAD_COPY_XXX-Optionen sehen.
OFF
FREECAD_COPY_LIBPACK_BIN_TO_BUILD Kopiert LibPack-Binaries in den Build-Ordner, die zur Ausführung von FreeCAD.exe benötigt werden. Siehe auch Abschnitt #Ausführen_und_Installieren_von_FreeCAD OFF
FREECAD_COPY_PLUGINS_BIN_TO_BUILD Kopiert Qt-Plugin-Dateien in den Build-Ordner, die zur Ausführung von FreeCAD.exe benötigt werden. Siehe auch Abschnitt #Ausführen_und_Installieren_von_FreeCAD OFF
FREECAD_LIBPACK_USE Schaltet die Verwendung von FreeCAD LibPack ein/aus (ON/OFF) ON
FREECAD_LIBPACK_DIR Verzeichnis, in dem sich LibPack befindet FreeCAD's Quell-Code-Verzeichnis
FREECAD_RELEASE_PDB Erstelle Debug-Bibliotheken auch für Freigabe-Versionen ON

FreeCAD bauen

Abhängig von deinem Compiler wird der Prozess zur Erstellung von FreeCAD etwas anders ablaufen. In den folgenden Abschnitten werden die bekannten Arbeitsabläufe beschrieben. Wenn Du mit Qt Creator baust, gehe zu Bau mit Qt Erzeuger, ansonsten fahre direkt fort:

Bau mit Visual Studio 15 (2017) und 16 (2019)

Bau freigeben

  1. Starte das Visual Studio IDE. Dies kann entweder durch Drücken der Schaltfläche Projekt öffnen in der CMake GUI oder durch Doppelklicken auf die Datei FreeCAD.sln, die Du in Deinem Bauordner findest, geschehen.
  2. In der Werkzeugleiste der MSVC IDE versichere dich, dass du für die erste Kompilierung Release verwendest.
  3. Es gibt ein Fenster namens Solution Explorer. Es listet alle möglichen Kompilierungsziele auf.

Um eine vollständige Kompilierung zu starten, klicke mit der rechten Maustaste auf das Ziel ALL_BUILD und wählen dann Build. Dies wird nun recht lange dauern.

Um ein einsatzbereites FreeCAD zu kompilieren, kompiliere das Ziel INSTALL, siehe Abschnitt Ausführen und Installieren von FreeCAD.

Wenn Du keine Fehler bekommst, ist das erledigt. Herzlichen Glückwunsch! Du kannst MSVC beenden oder offen lassen.

Hinweis: FreeCAD 0.20 erfordert mindestens den C++Sprachstandard Version 17, aber die Drittanbieterkomponente ist noch nicht bereit dafür. Deshalb wirst du Kompilierungsfehler für das Ziel ReverseEngineering bekommen. Um dies zu beheben, rechtsklicke im MSVC-Solution-Explorer auf dieses Target und wähle im Kontextmenü den letzten Eintrag Properties (Eigenschaften). Im erscheinenden Dialog ändere C++ Language Standard auf ISO C++14. Erstelle das Target ALL_BUILD erneut.

Fehlersuch Bau

Für einen Fehlersuch Bau ist es notwendig, dass das Python verwendet wird, das im LibPack enthalten ist. Um dies zu gewährleisten:

  1. Suche in der CMake GUI nach "Python".
  2. Wenn du dort einen Pfad wie C:/Programme/Python38/python.exe siehst, hat CMake das auf deinem PC installierte Python erkannt und nicht das des LibPack. In diesem Fall passe die verschiedenen Python Einstellungen in CMake wie folgt an (unter der Annahme, dass das LibPack im Ordner D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17 liegt):

As prerequisite for the debug build, you need to do this:

  1. Copy the content of the LibPack folder bind to the bin folder of the FreeCAD build folder (overwrite the existing files).
  2. Copy the content of the LibPack folder libd to the lib folder of the FreeCAD build folder.

Jetzt

  1. Starte die Visual Studio IDE. Dies kann entweder durch Drücken der Schaltfläche Öffne Projekt in der CMake GUI geschehen oder durch Doppelklick auf die Datei FreeCAD.sln, die du in deinem Bau Ordner findest.
  2. In der Werkzeugleiste der MSVC IDE versichere dich, dass du für die erste Kompilierung Debug verwendest.
  3. Es gibt ein Fenster namens Solution Explorer. Es listet alle möglichen Kompilierziele auf. Um eine vollständige Kompilierung zu starten, klicke mit der rechten Maustaste auf das Ziel ALL_BUILD und wähle dann Build im Kontextmenü.

Dies wird nun recht lange dauern. Wenn keine Kompilierungsfehler aufgetreten sind, kannst du den Debug Build starten:

  1. Klicke mit der rechten Maustaste auf das Ziel FreeCADMain und wähle dann im Kontextmenü Set as Startup Project.
  2. Klicke anschließend in der Werkzeugleiste auf die Schaltfläche mit dem grünen Dreieck Local Windows Debugger.

If there were no compilation errors, and if the FREECAD_COPY_* options mentioned in the CMake Configuration step above were enabled, you can start the debug build:

  1. Right-click on the target FreeCADMain and then choose Set as Startup Project in the context menu.
  2. Finally click in the toolbar on the button with the green triangle named Local Windows Debugger.

Dies startet die Erstellung der Debug-Version von FreeCAD und du kannst die MSVC-IDE verwenden, um eine Fehlersuche durchzuführen.

Video Ressource

Ein englischsprachiges Tutorium das mit der Konfiguration in CMake Gui beginnt und mit dem `Build` Befehl in Visual Studio 16 2019 fortgesetzt wird, ist ungelistet auf YouTube unter Tutorium: FreeCAD aus dem Quellcode unter Windows 10 bauen.

Bau mit Qt Creator (veraltet)

Installation und Konfiguration des Qt Creators

  • Herunterladen und installieren Qt Creator
  • Werkzeuge → Optionen → Texteditor → Registerkarte Verhalten:
    • Dateikodierungen → Standard-Kodierungen:
    • Gesetzt auf: ISO-8859-1 /...csISOLatin1' (Bestimmte Zeichen erzeugen Fehler/Warnungen mit Qt Creator, wenn sie auf UTF-8 gesetzt sind. Das scheint es zu beheben.)
  • Werkzeuge → Optionen → Bau & Lauf:
    • CMake Registerkarte
      • Fülle das Feld Ausführung mit dem Pfad zu cmake.exe aus.
    • Registerkarte Kits
      • Name: MSVC 2008
      • Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
      • Debugger: Automatische Erkennung.....
      • Qt-Version: Keine
    • Registerkarte Allgemein
      • Deaktiviere das Kontrollkästchen: Erstelle immer ein Projekt, bevor Du es einsetzt.
      • Deaktiviere das Kontrollkästchen: Stelle das Projekt immer vor der Ausführung bereit.

Projektimport und Bau

  • Datei → Datei oder Projekt öffnen
  • Öffne CMakeLists.txt', das sich in der obersten Ebene der Quelle befindet.
  • Dadurch wird CMake gestartet.
  • Wähle das Build Verzeichnis und klicke auf Weiter.
  • Setze den Generator auf NMake Generator (MSVC 2008)'.
  • Klicke auf CMake ausführen. Folge den oben dargestellten Anweisungen, um CMake nach Deinen Wünschen zu konfigurieren.

Jetzt kann FreeCAD erstellt werden.

  • Bau → Baue alle
  • Das wird lange dauern.....

Nach Fertigstellung kann es ausgeführt werden: Unten links befinden sich 2 grüne Dreiecke. Eine davon ist Fehlersuche. Der andere wird ausgeführt. Wähle, was immer du willst.

Kommandozeilen Bau

Die Schritte, wie man von der Kommandozeile aus kompiliert, hängen vom Compiler ab. Für MSVC 2017 sind die Schritte:

  1. In Windows' Startmenü gehen Sie zu Visual Studio 2017 → Visual Studio Tools und wähle Developer Command Prompt for VS 2017.
  2. Wechsle in deinen Buildordner.
  3. Führe den Befehl aus
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

oder

msbuild INSTALL.vcxproj /p:Configuration=Release

Diese Schritte können auch automatisiert werden. Hier ist zum Beispiel eine Lösung für MSVC 2017:

  1. Lade das Skript herunter compile-FC.txt.
  2. Umbenennen in compile-FC.bat'.
  3. Klicke im Datei Explorer von Windows mit der rechten Maustaste auf Dein Build Verzeichnis und benutze aus dem Kontextmenü Befehlszeile hier.
  4. Führe den Befehl aus
compile-FC install

Anstatt compile-FC mit der Option install aufzurufen, kannst Du auch debug oder release verwenden:

debug   - FreeCAD in Fehlersuchkonfiguration kompilieren

release - kompiliere FreeCAD in der Veröffentlichungskonfiguration.

install     - kompiliert FreeCAD in der Freigabekonfiguration und erstellt ein Installationssetup.

Ausführen und Installieren von FreeCAD

Es gibt 2 Methoden, um das kompilierte FreeCAD auszuführen:

Methode 1: Du führst die FreeCAD.exe aus, die du in deinem Build Verzeichnis findest, im Unterverzeichnis bin.

Methode 2: Du baust das Ziel INSTALL

Methode 2 ist die einfachere, da sie automatisch sicherstellt, dass sich alle für die Ausführung der FreeCAD.exe erforderlichen Bibliotheken im richtigen Ordner befinden. Die FreeCAD.exe und die Bibliotheken werden in dem Ordner ausgegeben, den du in der CMake-Variablen CMAKE_INSTALL_PREFIX angegeben hast.

Für Methode 1 müssen die Bibliotheken in den Ordner bin deines Buildordners (wo sich die FreeCAD.exe befindet) gelegt werden. Dies ist einfach zu bewerkstelligen:

  1. Öffne die CMake GUI.
  2. Suche dort nach der Variablenoption FREECAD_COPY_DEPEND_DIRS_TO_BUILD und überprüfe sie. Wenn es keine solche Option gibt, wurden die Bibliotheken bereits kopiert, siehe Beschreibung der Optionen.
  3. Suche dort nach der Variablenoption FREECAD_LIBPACK_BIN_TO_BUILD und überprüfe diese.
  4. Suche dort nach der Variablenoption FREECAD_PLUGINS_BIN_TO_BUILD und überprüfe sie.
  5. Klicke auf Konfigurieren. Am Ende der Konfiguration kopiert CMake automatisch die notwendigen Bibliotheken aus dem LibPack Ordner.

Troubleshooting

When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:

import os
os.system(r"~\DependenciesGui.exe")

Note: Instead of the ~ you must specify the full path to the DependenciesGui.exe on your system.

  • Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.

Aktualisierung des Build

FreeCAD ist sehr aktiv entwickelt. Daher ändert sich der Quellcode fast täglich. Neue Funktionen wurden hinzugefügt und Fehler behoben. Um von diesen Quellcode-Änderungen zu profitieren, musst Du Dein FreeCAD neu erstellen. Dies geschieht in zwei Schritten:

  1. Aktualisierung des Quellcodes
  2. Rekompilierung

Aktualisierung des Quellcodes

Verwendung eines Frontends

Bei Verwendung des Git Frontend TortoiseGit:

  1. Klicke mit der rechten Maustaste auf deinen FreeCAD Quellcode Ordner im Windows Datei Explorer und wähle im Kontextmenü Pull'.
  2. Es erscheint ein Dialogfeld. Wähle dort aus, welchen Entwicklungszweig Du bekommen möchtest. master' ist der Hauptzweig. Verwendedies daher, es sei denn, du möchtest ein spezielles neues Feature aus einem Zweig kompilieren, der noch nicht mit master zusammengeführt wurde. (Für weitere Informationen über Git-Zweige siehe Git development process.)

Klicke abschließend auf OK'.

Verwendung der Kommandozeile

Öffne ein Terminal (Eingabeaufforderung) und wechsle dort in dein Quellverzeichnis. Dann tippe:

git pull https://github.com/FreeCAD/FreeCAD.git master

wobei master der Name des Hauptentwicklungszweiges ist. Wenn du Code von einem anderen Zweig erhalten möchtest, verwende dessen Namen anstelle von master.

Rekompilierung

  1. Öffne die MSVC-IDE, indem Du entweder auf die Datei FreeCAD.sln oder auf die Datei ALL_BUILD.vcxproj in Deinem Build-Verzeichnis doppelklickst.
  2. Fahre mit Schritt 2 aus Abschnitt Building with Visual Studio 15 2017 fort.

Updating the LibPack

If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version here.

To update your LibPack the following recipe is best practice:

  1. Delete the bin folder in your build folder.
  2. Switch to your local LibPack folder and delete everything there.
  3. Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.
  4. Open CMake and there press the button Configure and then the button Generate. This recreates the bin folder you just deleted and also copies the new LibPack files into it.
  5. In CMake click the button Open Project and the MSVC IDE will open.
  6. In the MSVC IDE build the target INSTALL.

Werkzeuge

Um an der FreeCAD Entwicklung teilzunehmen, solltest du die folgenden Werkzeuge kompilieren und installieren:

Qt Designer Zusatzprogramm

FreeCAD verwendet Qt als Werkzeugsatz für seine Benutzeroberfläche. Alle Dialoge sind in UI-Dateien eingerichtet, die mit dem Programm Qt Designer bearbeitet werden können, das Teil jeder Qt Installation ist und auch im LibPack enthalten ist. FreeCAD hat seinen eigenen Satz von Qt Widgets, um spezielle Funktionen wie das Hinzufügen einer Einheit zu Eingabefeldern und das Setzen von Voreinstellungen zu ermöglichen.

Kompilierung

Die DLL kann nicht als Zusatzprogramm geladen werden, wenn sie mit einer anderen Qt Version kompiliert wurde als die, auf der dein Qt Designer/Qt Creator basiert. In diesem Fall musst du die DLL selbst kompilieren. Dies geschieht auf folgende Weise:

  • In the CMake options (see this section above) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
  • open MSVC and build the target FreeCAD_widgets

As result you will get the plugin file 'FreeCAD_widgets.dll in the folder
~\src\Tools\plugins\widget\Release

Einrichtung

  1. Laden diese ZIP Datei herunter. (Kompiliert mit Qt 5.12, siehe unten).
  2. Entpacke die DLL Datei in der ZIP Datei und kopiere sie
  • Wenn du das LibPack verwendest: in den Ordner
    ~\FreeCADLibs_12.5.2_x64_VC17\bin\designer
    Da es nur einen bin Ordner geben wird und du zuerst den Unterordner designer erstellen musst.
  • Wenn du eine vollständige Qt-Installation hast: du kannst wählen zwischen dem Ordner
    C:\Qt\Qt5.15.2\msvc2019_64\plugins\designer
    oder
    C:\Qt\Qt5.15.2\msvc2019_64\bin\designer(du musst zuerst den Unterordner designer anlegen.)
    (passe die Pfade an deine Installation an!).

Starte den Qt Designer (erneut) und überprüfe sein Menü Hilfe → Zusatzprogramme. Wenn das Zusatzprogramm FreeCAD_widgets.dll als geladen aufgeführt ist, kannst du nun FreeCADs .ui Dateien entwerfen und ändern. Falls nicht, musst du die DLL selbst Kompilieren.

Wenn du lieber Qt Creator anstelle von Qt Designer verwenden möchtest, muss die DLL in diesem Ordner abgelegt werden:
C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer
(Re)Start Qt Creator, wechsle in den Modus Design und überprüfe dann das Menü Werkzeuge → Formular Editor → Über Qt Designer Zusatzprogramme. Wenn das Zusatzprogramm FreeCAD_widgets.dll als geladen aufgeführt ist, kannst du nun FreeCADs .ui Dateien entwerfen und ändern. Falls nicht, musst du die DLL selbst Kompilieren.

=Miniaturansicht Anbieter

FreeCAD hat die Funktion, Vorschau Miniaturbilder für *.FCStd Dateien bereitzustellen. Das bedeutet, dass im Windows Datei Explorer *.FCStd Dateien mit einem Bildschirmfoto des darin enthaltenen Modells angezeigt werden. Um diese Funktion anbieten zu können, muss FreeCAD die Datei FCStdThumbnail.dll unter Windows installiert haben.

Einrichtung

Die DLL wird auf diese Weise installiert:

  1. Lade diese ZIP Datei herunter und entpacke sie.
  2. Öffne eine Windows Befehlseingabeaufforderung mit Administratorrechten (diese Rechte sind eine Voraussetzung).
  3. Wechsle in den Ordner, in dem sich die DLL befindet.
  4. Führe diesen Befehl aus
    regsvr32 FCStdThumbnail.dll
    

Prüfe also, ob es funktioniert, stelle sicher, dass in FreeCAD die Voreinstellungsoption Speichern der Miniaturansicht in Projektdatei beim speichern des Dokuments aktiviert ist und speichere ein Modell. Zeige dann im Windows Explorer den Ordner des gespeicherten Modells in einer Symbolansicht an. Du solltest nun ein Bildschirmfoto des Modells in der Ordneransicht sehen.

Kompilierung

Zum Kompilieren von FCStdThumbnail.dll

  1. Wechsle zum FreeCAD-Quell-Code-Verzeichnis
    ~\src\Tools\thumbs\ThumbnailProvider
  2. Öffne die CMake-GUI
  3. Gibt dort als Quellverzeichnis das an, in dem du dich gerade befindest.
  4. Verwende den gleichen Ordner als build-Verzeichnis.
  5. Klicke Konfigurieren
  6. Gib im erscheinenden Dialog den Generator an, den du verwenden möchtest. Für den Standard MS Visual Studio benutze Visual Studio xx 2yyy wobei xx die Compiler-Version und 2yyy das Jahr ihrer Freigabe ist. Es wird empfohlen, die Vorgabeoption Use default native compilers zu verwenden.
    Hinweis: Es ist wichtig, die richtige Bit-Variante anzugeben. Wenn du die 64-bit-Variante von LibPack hast, musst du auch den x64-Compiler verwenden.
  7. Klicke auf Generieren.
  8. Du sollte nun die Datei ALL_BUILD.vcxproj im Verzeichnis ~\src\Tools\thumbs\ThumbnailProvider haben. Doppelklicke darauf und die MSVC-IDE wird sich öffnen.
  9. Stelle in der Werkzeugleiste der MSVC-IDE sicher, dass du das Kompilationsziel Release verwendest.
  10. Es gibt ein Fenster namens Solution Explorer. Rechtklicke dort auf ALL_BUILD und wähle dann Build.
  11. Als Ergebnis solltest du nun eine Datei FCStdThumbnail.dll im Verzeichnis ~\src\Tools\thumbs\ThumbnailProvider\release haben, die du wie oben beschrieben installieren kannst.

OpenCASCADE Kompilieren

Das Standard Libpack kommt mit einer Version von OpenCASCADE, die für den allgemeinen Gebrauch geeignet ist. Unter bestimmten Umständen kann es jedoch sinnvoll sein, gegen eine andere Version von OpenCASCADE zu kompilieren, wie z.B. eine der offiziellen Versionen oder einem gepatchten Abzweig. Beachte, dass es keine Garantie dafür gibt, dass FreeCAD mit allen Versionen von OpenCASCADE funktioniert, und dass die Verwendung einer Nicht-Libpack Version nur für fortgeschrittene Benutzer geeignet ist. Beachte auch, dass die Netgen Bibliothek für einige ihrer Funktionen OpenCASCADE verwendet und gegen dieselbe Version von OpenCASCADE kompiliert werden muss, die du beim Kompilieren von FreeCAD verwendest.

When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.

Zuerst beschaffe den OpenCASCADE Quellcode, entweder direkt von der Veröffentlichungsseite OpenCASCADE.org, über git, oder durch klonen der Abspaltung eines anderen, wie z.B. the "blobfish" fork, der von FreeCAD Forumsmitglied tanderson69 gepflegt wird.

Als nächstes benutze CMake zum konfigurieren des Build-Systems in einer ähnlichen Weise wie bei der Erstellung von FreeCAD. Bemerkenswerte CMake-Options für OpenCASCADE sind:

  • 3RDPARTY_DIR - Der Ablageort deiner Drittanbieter-Bibliotheken, typischerweise auf dein FreeCAD-Libpack-Verzeichnis eingestellt
  • INSTALL_DIR - Wohin die fertigen Bibliotheken installiert werden sollen. Eine gute Praxis ist es, ein isoliertes (eigenes) Verzeichnis auf deinem System zu benutzen, anstatt "global" zu installieren oder die Libpack-Version zu überschreiben.
  • Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the Release mode.
  • Repeat building the two targets in the Debug mode.

To build FreeCAD using the self-compiled Open Cascade, you must do the following:

  • Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
  • Switch to the LibPack folder and go there to the subfolder cmake
  • Open there the file OpenCASCADEDrawTargets.cmake with a text editor
  • Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path
    D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib
    becomes just
    freetype.lib
  • Do the same for the file OpenCASCADEVisualizationTargets.cmake

Compiling Netgen

The LibPack comes with a version of Netgen that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.

However, you might build Netgen nevertheless. This is an easy task:

  • First obtain the Netgen source code, either directly from Netgen 's git repository.
  • Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
Variable name Description Default
CMAKE_INSTALL_PREFIX The output folder when building the target INSTALL. If the build was successful, take the files from this folder to update your LibPack. C:/netgen
OpenCasCade_DIR The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section Compiling Open Cascade you can use the subfolder cmake of there folder you used as INSTALL_DIR. If not, use the subfolder cmake of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder lib and copy in the files freetype.lib and freetyped.lib from your LibPack. empty
USE_GUI set it to OFF ON
USE_NATIVE_ARCH set it to OFF; this is only necessary important to support older CPU that don't have the AVX2 instruction set ON
USE_OCC set it to ON OFF
USE_PYTHON set it to OFF ON
USE_SUPERBUILD set it to OFF ON
ZLIB_INCLUDE_DIR The path to the necessary 3rdparty component zlib. It is recommended to use the folder as input where your used LibPack is. empty
ZLIB_LIBRARY_DEBUG The path to the ZLib file zlibd.lib. It is located in the subfolder lib of your LibPack folder. empty
ZLIB_LIBRARY_RELEASE The path to the ZLib file zlib.lib. It is located in the subfolder lib of your LibPack folder. empty
  • Additionally you need to add a new CMake entry:

name: CMAKE_DEBUG_POSTFIX, type: string, content: _d
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.

  • Press the Configure button in CMake to generate the *.cmake files.
  • Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
    • Search your Netgen build folder for the file netgen-targets.cmake and open it with a text editor. Remove the setting ;/arch:AVX2 in the Option INTERFACE_COMPILE_OPTIONS.
    • Press the Configure button in CMake again.
  • Press the Generate button in CMake.
  • Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the Release mode.
  • Repeat building the two targets in the Debug mode.

To build FreeCAD using the self-compiled Netgen, you must do the following:

  • Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)

Referenzen

Siehe auch