Build Instructions/de

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (fix nav menu)
Line 93: Line 93:
  
 
msbuild Übersicht: [https://docs.microsoft.com/de-de/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2017  msbuild command line reference]
 
msbuild Übersicht: [https://docs.microsoft.com/de-de/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2017  msbuild command line reference]
 +
 +
== Ahead of Time Zusammenstellung (AOT) ==
 +
Wie Sie alle wissen, enthalten die durch den obigen Kompilierungsprozess erstellten Dateien * .exe und .dll keinen nativen Code für den Computer.<br>
 +
Mit diesen Dateien wird der von der CPU benötigte native Code zur Laufzeit nach Bedarf in einem als Just in Time (JIT) bezeichneten Prozess erstellt.<br>
 +
Es ist möglich, eine weitere Kompilierungsphase für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn Das Programm startet. Dies ist der Ahead of Time-Prozess (AOT).<br>
 +
Da JIT zur Laufzeit ausgeführt wird, ist die Zeit für umfangreiche Codeoptimierungen begrenzt. AOT kann dagegen alles tun.<br>
 +
AOT sollte auf diese Weise schneller zu laden sein, den für die JIT-Arbeit benötigten Speicher einsparen und die Latenz aufgrund der Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.<br>
 +
Auf diese Weise hilft AOT dabei, die große Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, selbst wenn man bedenkt, dass JIT abhängig vom aktuellen Code-Ausführungsstatus eine Optimierung durchführen kann, die AOT nicht kann. (Wenn Sie der Meinung sind, dass c# so schnell ist wie kompetenter C++ Code, ändern Sie besser, was Sie rauchen ...)<br>
 +
Tatsächlich sind sowohl .net als auch mono do AOT auf ihren Komponenten während der Installation von<br>
 +
JIT weiterhin aktiv und kompilieren zur Laufzeit einen anderen Code . OpenSim und verwendete .net / Mono-Framework-Teile hängen davon ab.<br>
 +
 +
Für Linux enthält 0.9.2.0 jetzt die Skripte makeaot.sh und cleanaot.sh, um das Testen von AOT zu erleichtern.<br>
 +
Führen Sie makeaot.sh nach der obigen Kompilierungsphase aus, um die nativen Codedateien zu generieren. Die Option -O = all muss bei der Ausführung von opensim.exe zu mono hinzugefügt werden, z.<br>
 +
 +
    mono --desktop -O=all OpenSim.exe
 +
 +
Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn makeaot ausgeführt wird).<br>
 +
 +
<b>VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!</b><br>
 +
 +
Die generierten Dateien sind spezifisch für diesen Computer. Kopieren Sie die nativen Codedateien nicht auf einen anderen Computer, es sei denn, sie sind absolut identisch.<br>
 +
Die ursprüngliche EXE- und DLL-Datei wird weiterhin benötigt
 +
 +
AOT ist auch in Windows möglich, verwendet jedoch verschiedene Tools, die das zentrale Repository auf dem Computer erweitern und schwieriger zu isolieren und zu warten sind. siehe ngen<br>
 +
 +
Macs sind .. Macs .. Zukünftige Modelle können JIT völlig verbieten, so wie es Apple Mobile-Produkte tun. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie unter Linux<br>
 +
 +
Erwarten Sie im praktischen Gebrauch nicht viel mehr als ein bisschen schnelleres Laden.<br>
 +
Da die Kompilierung unterschiedlich ist, können außerdem neue Probleme hinzugefügt werden. Testen Sie also sorgfältig<br>
 +
Opensim-Leistungsprobleme betreffen hauptsächlich den eigenen Code, schrecklich schlechte Kommunikationsprotokolle, die Verwendung von schlechtem .net / mono-Framework-Code (Demoqualität in denselben Fällen) usw.<br>
 +
Und natürlich dumme und ewig kaputte GC.<br>
 +
Aber ... gut jeder ns zählt ..<br>
  
 
= Konfiguration =
 
= Konfiguration =

Revision as of 23:54, 17 October 2020

Diese Seite behandelt den Aufbau von OpenSimulator aus Quellcode auf mehreren Plattformen. Bitte helfen Sie uns, diese Seite im Laufe des Projekts auf dem neuesten Stand zu halten. Wenn Sie nur OpenSimulator ausführen möchten, laden Sie stattdessen den binären Build Download und run . In den meisten Fällen sollten Sie Binärdateien verwenden.

Contents

Beziehen des Quellcodes

Auf der Download Seite finden Sie Anweisungen zum Abrufen einer OpenSimulator-Quellversion. Wenn Sie den aktuellen Entwicklungscode (dh den Git-Master-Zweig) möchten, finden Sie ihn unter Developer_Documentation#Source_Code_Repository_Access.

Erstellen

Obwohl diese Seite lang ist, ist das Bauen im Allgemeinen ziemlich einfach. Weitere Informationen finden Sie in der Datei BUILDING.txt in der Distribution.

Bedarf

OpenSimulator 0.9.0.x erfordert entweder

Möglicherweise benötigen Sie auch ein Tool.


OpenSimulator 0.9.1 erfordert entweder


Andere Plattformen können eigene Mono-Distributionen haben oder müssen Mono-Kompilate auf ihnen erstellen.


Andere von OpenSimulator verwendete Bibliotheken finden Sie in unserem opensim-libs git repo.

git clone git://opensimulator.org/git/opensim-libs

Möglicherweise müssen Sie sie für Ihre Plattform kompilieren, insbesondere die nicht verwalteten Bibliotheken wie Bullet oder ODE native Code-Bibliotheken

MS Windows

Unterstützte Compiler

  • Visual Studio Community 2017
  • Oder jede Version, die die .Net-Version unterstützt. VS2010 kann beispielsweise für OpenSimulator-Versionen vor 0.9.1 verwendet werden.

Kompilieren in einer IDE

  1. Führen Sie "runprebuild.bat" aus
  2. Öffnen Sie das resultierende "OpenSim.sln" in Visual Studio IDE.
  3. Wählen Sie die Debug- oder Release-Konfiguration
  4. Menu Build -> Build Solution.

Kompilieren mit der Eingabeaufforderung

  1. Führen Sie "runprebuild.bat" aus
  2. Führen Sie die resultierende Datei "compile.bat" aus.

Linux und andere Mono-Plattformen

Bereiten Sie die Kompilierung vor

Um mehrere Projektdateien zu erstellen, führen Sie sie im Ordner opensim aus:

 ./runprebuild.sh

Kompilieren mit NAnt

Bei einigen Mono-Versionen, insbesondere bei alten Versionen, ist möglicherweise die Verwendung von nant erforderlich, um den OpenSimulator korrekt zu kompilieren. In diesem Fall führen Sie einfach Folgendes aus:

 nant

NAnt tool macht bei neuen OpenSim Versionen Probleme, verwenden Sie stattdessen msbuild.

Kompiliere mit xbuild

On mono versions you can just use xbuild.

 xbuild

xbuild tool ist veraltet und wird in zukünftigen Updates entfernt, verwenden Sie stattdessen msbuild

Kompilieren mit Msbuild

Für Opensim 0.9.1 können Sie weiterhin xbuild verwenden, Mono empfiehlt jedoch die Verwendung von msbuild. Möglicherweise müssen Sie das Paket msbuild zusätzlich zu mono-complete installieren. (Derzeit ist msbuild enthalten, wenn Sie Mono-Complete unter Ubuntu aus den offiziellen Mono-Repositorys installieren.

Verwenden Sie xbuild in den anderen Fällen als letzten Ausweg.

Jüngste Verbesserungen, insbesondere an der JIT-Laufzeit, rechtfertigen das Kompilieren in der Release-Konfiguration, aber Sie verlieren einige Debug-Funktionen.

um mit der Debug-Konfiguration zu kompilieren:

  msbuild

mit Release Konfiguration kompilieren:

  msbuild /p:Configuration=Release

Zum Kompilieren mit der Debug Konfiguration und der detaillierten Datei opensim.log, diese kann dann mit einem Texteditor diese kann zur Diagnose der Fehler gelesen werden:

 msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d

Sie können die folgenden Werte für den Detaillierungsgrad der Datei opensim.log angeben:

 q [still], m [minimal], n [normal], d [detailliert] und diag [diagnostisch].

msbuild Übersicht: msbuild command line reference

Ahead of Time Zusammenstellung (AOT)

Wie Sie alle wissen, enthalten die durch den obigen Kompilierungsprozess erstellten Dateien * .exe und .dll keinen nativen Code für den Computer.
Mit diesen Dateien wird der von der CPU benötigte native Code zur Laufzeit nach Bedarf in einem als Just in Time (JIT) bezeichneten Prozess erstellt.
Es ist möglich, eine weitere Kompilierungsphase für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn Das Programm startet. Dies ist der Ahead of Time-Prozess (AOT).
Da JIT zur Laufzeit ausgeführt wird, ist die Zeit für umfangreiche Codeoptimierungen begrenzt. AOT kann dagegen alles tun.
AOT sollte auf diese Weise schneller zu laden sein, den für die JIT-Arbeit benötigten Speicher einsparen und die Latenz aufgrund der Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.
Auf diese Weise hilft AOT dabei, die große Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, selbst wenn man bedenkt, dass JIT abhängig vom aktuellen Code-Ausführungsstatus eine Optimierung durchführen kann, die AOT nicht kann. (Wenn Sie der Meinung sind, dass c# so schnell ist wie kompetenter C++ Code, ändern Sie besser, was Sie rauchen ...)
Tatsächlich sind sowohl .net als auch mono do AOT auf ihren Komponenten während der Installation von
JIT weiterhin aktiv und kompilieren zur Laufzeit einen anderen Code . OpenSim und verwendete .net / Mono-Framework-Teile hängen davon ab.

Für Linux enthält 0.9.2.0 jetzt die Skripte makeaot.sh und cleanaot.sh, um das Testen von AOT zu erleichtern.
Führen Sie makeaot.sh nach der obigen Kompilierungsphase aus, um die nativen Codedateien zu generieren. Die Option -O = all muss bei der Ausführung von opensim.exe zu mono hinzugefügt werden, z.

   mono --desktop -O=all OpenSim.exe

Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn makeaot ausgeführt wird).

VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!

Die generierten Dateien sind spezifisch für diesen Computer. Kopieren Sie die nativen Codedateien nicht auf einen anderen Computer, es sei denn, sie sind absolut identisch.
Die ursprüngliche EXE- und DLL-Datei wird weiterhin benötigt

AOT ist auch in Windows möglich, verwendet jedoch verschiedene Tools, die das zentrale Repository auf dem Computer erweitern und schwieriger zu isolieren und zu warten sind. siehe ngen

Macs sind .. Macs .. Zukünftige Modelle können JIT völlig verbieten, so wie es Apple Mobile-Produkte tun. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie unter Linux

Erwarten Sie im praktischen Gebrauch nicht viel mehr als ein bisschen schnelleres Laden.
Da die Kompilierung unterschiedlich ist, können außerdem neue Probleme hinzugefügt werden. Testen Sie also sorgfältig
Opensim-Leistungsprobleme betreffen hauptsächlich den eigenen Code, schrecklich schlechte Kommunikationsprotokolle, die Verwendung von schlechtem .net / mono-Framework-Code (Demoqualität in denselben Fällen) usw.
Und natürlich dumme und ewig kaputte GC.
Aber ... gut jeder ns zählt ..

Konfiguration

Siehe Configuration.

Personal tools
General
About This Wiki