v0.2.0
This commit is contained in:
parent
6a3ae701f6
commit
0b53369fc8
@ -1,6 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
- **25/06/15** - commit: v0.1.0
|
||||
- **25/06/15** - commit: v0.2.0
|
||||
- **Hinzugefügt:**
|
||||
- [X] git submodule erstellt
|
||||
- [X] Rust Toolchain Einrichtung
|
||||
- [X] Rust offline-installation
|
||||
|
||||
- **25/06/15** - commit: v0.1.0
|
||||
- **Hinzugefügt:**
|
||||
- [X] helix
|
||||
- [x] desktop.ini
|
||||
|
26
README.md
26
README.md
@ -2,7 +2,11 @@
|
||||
|
||||

|
||||
|
||||
Kleine Sammlung von Gedächnissstützen für den privaten und persönlichen Gebrauch. Ausserdem befinden sich hier auch viele Artikel die von mir noch nicht vollständig verwertet worden sind.
|
||||
Kleine Sammlung von Gedächnissstützen für den privaten und persönlichen Gebrauch.
|
||||
Ausserdem befinden sich hier auch viele Artikel die von mir noch nicht vollständig verwertet worden sind.
|
||||
Die Artikel sind auch zur Vorbereitung für neue Artikel auf <https://www.ionivation.com> vorgesehen.
|
||||
|
||||
**origin:** <https://local.ionivation.com/realAscot/adminslog>
|
||||
|
||||
## Inhalt
|
||||
|
||||
@ -22,6 +26,7 @@ Kleine Sammlung von Gedächnissstützen für den privaten und persönlichen Gebr
|
||||
- [Webserver](#webserver)
|
||||
- [Windows](#windows)
|
||||
- [Programmierung](#programmierung)
|
||||
- [Rust](#rust)
|
||||
- [ts - js - node](#ts---js---node)
|
||||
- [Projektinhalt](#projektinhalt)
|
||||
- [Neue Dokumente](#neue-dokumente)
|
||||
@ -57,6 +62,7 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
|
||||
- [Artikel: git](dokus/git/git.md)
|
||||
- [SSH-Zugriff auf Git-Repository in WSL einrichten](dokus/git/git-ssh-remote.md)
|
||||
- [Git – Remote-Branches: Häufige Aufgaben und Lösungen](dokus/git/git-remote-branch.md)
|
||||
- [Git-Submodule: Der umfassende Praxisleitfaden](dokus/git/git-submodule-leitfaden.md)
|
||||
|
||||
### Markdown
|
||||
|
||||
@ -90,6 +96,13 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
|
||||
|
||||
### Programmierung
|
||||
|
||||
#### Rust
|
||||
|
||||
- [Rust-Toolchain mit MSVC unter Windows einrichten](dokus/rust/rust-toolchain-msvc.md)
|
||||
- [Erstellung eines Installationsmediums für Rust + MSVC (Offline)](dokus/rust/rust-offline-installation.md)
|
||||
|
||||
---
|
||||
|
||||
#### ts - js - node
|
||||
|
||||
- [Einstieg in JavaScript-Dialekte und TypeScript-Konfiguration](dokus/js-ts/js-ts-dialekte.md)
|
||||
@ -102,9 +115,6 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
|
||||
|
||||
```plaintext
|
||||
📁 ./
|
||||
├── 📁 .vscode
|
||||
│ ├── 📄 cspell.json
|
||||
│ └── 📄 settings.json
|
||||
├── 📁 dokus
|
||||
│ ├── 📁 apache-plesk
|
||||
│ │ └── 📄 lets-encrypt-plesk.md
|
||||
@ -113,6 +123,7 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
|
||||
│ ├── 📁 git
|
||||
│ │ ├── 📄 git-remote-branch.md
|
||||
│ │ ├── 📄 git-ssh-remote.md
|
||||
│ │ ├── 📄 git-submodule-leitfaden.md
|
||||
│ │ └── 📄 git.md
|
||||
│ ├── 📁 js-ts
|
||||
│ │ └── 📄 js-ts-dialekte.md
|
||||
@ -120,6 +131,9 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
|
||||
│ │ └── 📄 gewindetabellen.md
|
||||
│ ├── 📁 plesk
|
||||
│ │ └── 📄 plesk-benutzer-schon-vorhanden.md
|
||||
│ ├── 📁 rust
|
||||
│ │ ├── 📄 rust-offline-installation.md
|
||||
│ │ └── 📄 rust-toolchain-msvc.md
|
||||
│ ├── 📁 windows
|
||||
│ │ └── 📄 desktop_ini.md
|
||||
│ └── 📄 helix__editor_einfuehrung_de.md
|
||||
@ -142,12 +156,14 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
|
||||
│ ├── 📄 fscopy.ts
|
||||
│ └── 📄 fsdel.ts
|
||||
├── 📄 .gitignore
|
||||
├── 📄 CHANGELOG.md
|
||||
├── 📄 LICENSE
|
||||
├── 📄 package-lock.json
|
||||
├── 📄 package.json
|
||||
├── 📄 README.md
|
||||
├── 📄 scan.cmd
|
||||
└── 📄 tsconfig.json
|
||||
├── 📄 tsconfig.json
|
||||
└── 📄 VERSION
|
||||
```
|
||||
|
||||
---
|
||||
|
203
dokus/git/git-submodule-leitfaden.md
Normal file
203
dokus/git/git-submodule-leitfaden.md
Normal file
@ -0,0 +1,203 @@
|
||||
# Git-Submodule: Der umfassende Praxisleitfaden
|
||||
|
||||
## Inhalt
|
||||
|
||||
- [Git-Submodule: Der umfassende Praxisleitfaden](#git-submodule-der-umfassende-praxisleitfaden)
|
||||
- [Inhalt](#inhalt)
|
||||
- [🔰 Was ist ein Git-Submodul?](#-was-ist-ein-git-submodul)
|
||||
- [🧱 Grundlagen](#-grundlagen)
|
||||
- [📌 `.gitmodules`](#-gitmodules)
|
||||
- [🧠 Merksatz](#-merksatz)
|
||||
- [🛠️ Submodul hinzufügen](#️-submodul-hinzufügen)
|
||||
- [🔄 Submodule aktualisieren](#-submodule-aktualisieren)
|
||||
- [📥 Klonen mit Submodulen](#-klonen-mit-submodulen)
|
||||
- [Methode 1: Inklusive Submodule](#methode-1-inklusive-submodule)
|
||||
- [Methode 2: Nachträglich initialisieren](#methode-2-nachträglich-initialisieren)
|
||||
- [🔃 Submodul-Synchronisation](#-submodul-synchronisation)
|
||||
- [📂 Weitere Remotes im Submodul](#-weitere-remotes-im-submodul)
|
||||
- [❗ Stolperfallen und Besonderheiten](#-stolperfallen-und-besonderheiten)
|
||||
- [🔄 Remote-URL wechseln](#-remote-url-wechseln)
|
||||
- [🚀 Push \& Pull Verhalten](#-push--pull-verhalten)
|
||||
- [🧼 Submodul löschen](#-submodul-löschen)
|
||||
- [🧰 Best Practices](#-best-practices)
|
||||
- [📎 Nützliche Kommandos](#-nützliche-kommandos)
|
||||
- [📑 Beispiel `.gitmodules` mit kommentierter Remote-Auswahl](#-beispiel-gitmodules-mit-kommentierter-remote-auswahl)
|
||||
- [🧭 Alternative: Subtree statt Submodul?](#-alternative-subtree-statt-submodul)
|
||||
- [📚 Fazit](#-fazit)
|
||||
- [🔗 Weiterführende Links](#-weiterführende-links)
|
||||
|
||||
---
|
||||
|
||||
## 🔰 Was ist ein Git-Submodul?
|
||||
|
||||
Ein **Submodul** ist ein Git-Repository innerhalb eines anderen Git-Repositories. Es erlaubt, einen festen Commit eines externen Repositories als Teilprojekt einzubinden, ohne dessen Dateien direkt zu übernehmen.
|
||||
|
||||
Beispielhafte Struktur:
|
||||
|
||||
```plaintext
|
||||
hauptprojekt/
|
||||
├── .gitmodules
|
||||
├── modul1/ ← eingebundenes Submodul
|
||||
└── modul2/
|
||||
```
|
||||
|
||||
## 🧱 Grundlagen
|
||||
|
||||
### 📌 `.gitmodules`
|
||||
|
||||
Diese Datei beschreibt Pfad und Remote-URL aller eingebundenen Submodule:
|
||||
|
||||
```ini
|
||||
[submodule "modul1"]
|
||||
path = modul1
|
||||
url = git@github.com:user/modul1.git
|
||||
```
|
||||
|
||||
### 🧠 Merksatz
|
||||
|
||||
> Submodule sind **Pointer auf einen bestimmten Commit** eines anderen Repositories.
|
||||
|
||||
## 🛠️ Submodul hinzufügen
|
||||
|
||||
```bash
|
||||
git submodule add <repo-url> <zielpfad>
|
||||
git commit -m "📦 Submodul hinzugefügt"
|
||||
```
|
||||
|
||||
Beispiel:
|
||||
|
||||
```bash
|
||||
git submodule add git@github.com:user/libmath.git extern/libmath
|
||||
```
|
||||
|
||||
Erzeugt:
|
||||
|
||||
- `.gitmodules`
|
||||
- Verzeichniseintrag im Git-Index
|
||||
- Initialer Checkout des Submoduls (HEAD auf Remote-Commit)
|
||||
|
||||
## 🔄 Submodule aktualisieren
|
||||
|
||||
```bash
|
||||
cd extern/libmath
|
||||
git pull origin main
|
||||
cd ../..
|
||||
git add extern/libmath
|
||||
git commit -m "🔄 Submodul libmath aktualisiert"
|
||||
```
|
||||
|
||||
> Nur das **Hauptrepo speichert den Commit-Zeiger**, nicht den Submodul-Inhalt selbst.
|
||||
|
||||
## 📥 Klonen mit Submodulen
|
||||
|
||||
### Methode 1: Inklusive Submodule
|
||||
|
||||
```bash
|
||||
git clone --recurse-submodules <url>
|
||||
```
|
||||
|
||||
### Methode 2: Nachträglich initialisieren
|
||||
|
||||
```bash
|
||||
git clone <url>
|
||||
git submodule update --init
|
||||
```
|
||||
|
||||
## 🔃 Submodul-Synchronisation
|
||||
|
||||
Wenn sich `.gitmodules` ändert (z. B. Remote-URL):
|
||||
|
||||
```bash
|
||||
git submodule sync
|
||||
```
|
||||
|
||||
## 📂 Weitere Remotes im Submodul
|
||||
|
||||
```bash
|
||||
cd modul1
|
||||
git remote add backup git@backup.server:repo.git
|
||||
```
|
||||
|
||||
> Diese Remotes sind **lokal**, nicht versioniert. `.gitmodules` kennt nur den Haupt-Remote.
|
||||
|
||||
## ❗ Stolperfallen und Besonderheiten
|
||||
|
||||
| Problem | Erklärung |
|
||||
|--------|-----------|
|
||||
| Submodul wird nicht mitgeclont | `--recurse-submodules` vergessen |
|
||||
| Änderungen im Submodul nicht sichtbar | Submodul-Commit im Hauptrepo nicht geupdated |
|
||||
| `.gitmodules` zeigt nicht funktionierende URL | z. B. lokale URL nach GitHub-Push – muss angepasst werden |
|
||||
| Submodul zeigt „detached HEAD“ | normaler Zustand, wenn Submodul auf festen Commit gesetzt ist |
|
||||
|
||||
## 🔄 Remote-URL wechseln
|
||||
|
||||
```bash
|
||||
# In .gitmodules ändern oder per Befehl:
|
||||
git config -f .gitmodules submodule.modul1.url git@github.com:newuser/libmath.git
|
||||
git submodule sync
|
||||
```
|
||||
|
||||
## 🚀 Push & Pull Verhalten
|
||||
|
||||
| Aktion | Wirkung |
|
||||
|---------------------|---------|
|
||||
| `git push` im Hauptrepo | Pusht nur Zeiger auf Submodul-Commit |
|
||||
| `git push` im Submodul | Muss separat erfolgen |
|
||||
| `git pull` im Hauptrepo | Holt *nicht* automatisch neuen Submodul-Stand |
|
||||
|
||||
## 🧼 Submodul löschen
|
||||
|
||||
```bash
|
||||
# Schritt 1: Entfernen
|
||||
git submodule deinit -f pfad/zum/modul
|
||||
git rm -f pfad/zum/modul
|
||||
rm -rf .git/modules/pfad/zum/modul
|
||||
git commit -m "❌ Submodul entfernt"
|
||||
```
|
||||
|
||||
## 🧰 Best Practices
|
||||
|
||||
- **Nur stabile Submodul-Commits einchecken**, keine laufenden Branches.
|
||||
- **Submodule niemals blind aktualisieren** – Änderungen genau prüfen.
|
||||
- **Remote-Umschaltung dokumentieren oder automatisieren**, z. B. per Script.
|
||||
- **Submodule klein halten** – große, tief verschachtelte Strukturen vermeiden.
|
||||
- Für wiederverwendbare Bibliotheken oder Assets ideal (CAD, Snippets, Markdown, etc.).
|
||||
|
||||
## 📎 Nützliche Kommandos
|
||||
|
||||
```bash
|
||||
git submodule status # Überblick über alle Submodule
|
||||
git submodule update --init # Submodule initial holen
|
||||
git submodule update --remote # Auf neuesten Remote-Stand updaten
|
||||
git config -f .gitmodules ... # .gitmodules direkt bearbeiten
|
||||
```
|
||||
|
||||
## 📑 Beispiel `.gitmodules` mit kommentierter Remote-Auswahl
|
||||
|
||||
```ini
|
||||
[submodule "modul1"]
|
||||
path = modul1
|
||||
url = ssh://git@local.example.com:2222/myorg/modul1.git
|
||||
# url = git@github.com:myorg/modul1.git
|
||||
```
|
||||
|
||||
## 🧭 Alternative: Subtree statt Submodul?
|
||||
|
||||
Subtree ist einfacher zu verwalten, aber:
|
||||
|
||||
- kein fester Commit-Zeiger,
|
||||
- kein Remote-Wechsel ohne Umweg,
|
||||
- gemergte Historie im Hauptrepo.
|
||||
|
||||
**Submodul = getrennte Repos**
|
||||
**Subtree = eingemergter Inhalt**
|
||||
|
||||
## 📚 Fazit
|
||||
|
||||
Git-Submodule sind mächtig, aber erfordern **Disziplin und Überblick**. Für wiederverwendbare Komponenten, zentral gepflegte Inhalte oder externe Bibliotheken sind sie oft die bessere Wahl als Duplikate oder Copy-Paste.
|
||||
|
||||
## 🔗 Weiterführende Links
|
||||
|
||||
- [Git Book: Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
|
||||
- [git-scm Doku: submodule](https://git-scm.com/docs/git-submodule)
|
||||
- [Vergleich Submodule vs. Subtree](https://www.atlassian.com/git/tutorials/git-submodule)
|
152
dokus/rust/rust-offline-installation.md
Normal file
152
dokus/rust/rust-offline-installation.md
Normal file
@ -0,0 +1,152 @@
|
||||
# Erstellung eines Installationsmediums für Rust + MSVC (Offline)
|
||||
|
||||
Dieser Artikel beschreibt, wie du ein **vollständiges Installationsmedium** für die **Rust-Toolchain mit MSVC** unter Windows vorbereitest, damit du Rust auf anderen Rechnern **ohne Internetzugang** einrichten kannst.
|
||||
|
||||
---
|
||||
|
||||
## Ziel
|
||||
|
||||
Ein USB-Stick oder Offline-Verzeichnis mit:
|
||||
|
||||
- Rust-Installer (offlinefähig)
|
||||
- Visual Studio Build Tools (komplett inkl. MSVC)
|
||||
- Optional: vorkompilierte Ziel-Toolchains
|
||||
|
||||
---
|
||||
|
||||
## 1. Rust Offline-Installer vorbereiten
|
||||
|
||||
### 1.1 Rustup Offline-Installer besorgen
|
||||
|
||||
Gehe auf:
|
||||
|
||||
https://forge.rust-lang.org/infra/release-archives.html
|
||||
|
||||
Lade von dort:
|
||||
|
||||
- `rust-<version>-x86_64-pc-windows-msvc.msi`
|
||||
- `cargo-<version>-x86_64-pc-windows-msvc.msi` (optional)
|
||||
|
||||
Oder direkt über:
|
||||
|
||||
https://static.rust-lang.org/dist/
|
||||
|
||||
### 1.2 Installation ohne Internet
|
||||
|
||||
Auf dem Zielrechner:
|
||||
|
||||
- Führe `.msi`-Datei lokal aus
|
||||
- Setze den `Path` manuell oder automatisch via Skript
|
||||
|
||||
---
|
||||
|
||||
## 2. Visual Studio Build Tools offline installieren
|
||||
|
||||
### 2.1 Installer herunterladen
|
||||
|
||||
Lade den **Visual Studio Installer** von:
|
||||
|
||||
https://visualstudio.microsoft.com/de/visual-cpp-build-tools/
|
||||
|
||||
Starte dann:
|
||||
|
||||
```cmd
|
||||
vs_BuildTools.exe --layout C:\VSOffline --lang de-DE
|
||||
```
|
||||
|
||||
Dieser Befehl erstellt einen vollständigen Offline-Installer im Verzeichnis `C:\VSOffline`.
|
||||
|
||||
### 2.2 Auswahl der Workloads
|
||||
|
||||
Wähle beim interaktiven Download (GUI oder CLI):
|
||||
|
||||
- **C++ Build Tools**
|
||||
- Workload-Komponenten:
|
||||
- MSVC v14.x (x64/x86)
|
||||
- Windows 10/11 SDK
|
||||
- CMake-Tools (optional)
|
||||
|
||||
> 💡 Achtung: Download-Größe ca. 4–6 GB!
|
||||
|
||||
### 2.3 Installation auf Zielsystem (Offline)
|
||||
|
||||
Auf dem Zielrechner:
|
||||
|
||||
```cmd
|
||||
C:\VSOffline\vs_BuildTools.exe --noweb --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --quiet --wait
|
||||
```
|
||||
|
||||
Alternativ über `vs_setup.exe`, je nach Version.
|
||||
|
||||
---
|
||||
|
||||
## 3. Optional: Toolchains, Crates & Targets vorbereiten
|
||||
|
||||
Falls du zusätzliche Targets (z. B. Linux oder ARM) brauchst:
|
||||
|
||||
### 3.1 Ziel-Toolchain lokal laden
|
||||
|
||||
```cmd
|
||||
rustup target add x86_64-unknown-linux-gnu --print
|
||||
```
|
||||
|
||||
Lade die `.tar.gz` von:
|
||||
|
||||
https://static.rust-lang.org/dist/
|
||||
|
||||
Speichere diese im `dist/`-Ordner und installiere offline via:
|
||||
|
||||
```cmd
|
||||
rustup toolchain link <name> <pfad_zur_toolchain>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Automatisierung via USB-Stick
|
||||
|
||||
### Dateistruktur auf Stick
|
||||
|
||||
```text
|
||||
USB-STICK/
|
||||
├── rust/
|
||||
│ └── rust-1.xx.x-x86_64-pc-windows-msvc.msi
|
||||
├── vsbuildtools/
|
||||
│ └── setup + Offline-Daten
|
||||
├── install.cmd
|
||||
```
|
||||
|
||||
### Beispiel `install.cmd`
|
||||
|
||||
```cmd
|
||||
@echo off
|
||||
echo [1/2] Installiere Rust...
|
||||
start /wait rust\rust-*.msi
|
||||
|
||||
echo [2/2] Installiere Visual Studio Build Tools...
|
||||
start /wait vsbuildtools\vs_BuildTools.exe --noweb --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --quiet --wait
|
||||
|
||||
echo Fertig. Bitte PC neu starten!
|
||||
pause
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Validierung
|
||||
|
||||
Nach der Offline-Installation auf Zielsystem:
|
||||
|
||||
```cmd
|
||||
cargo new testprojekt
|
||||
cd testprojekt
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
Ergebnis:
|
||||
|
||||
target\release\testprojekt.exe
|
||||
|
||||
---
|
||||
|
||||
## Fazit
|
||||
|
||||
Mit dieser Methode kannst du eine vollständige Rust- und MSVC-Umgebung offline auf jedem Windows-System aufsetzen – ideal für abgeschottete Systeme ohne Internetverbindung.
|
152
dokus/rust/rust-toolchain-msvc.md
Normal file
152
dokus/rust/rust-toolchain-msvc.md
Normal file
@ -0,0 +1,152 @@
|
||||
# Rust-Toolchain mit MSVC unter Windows einrichten
|
||||
|
||||
Dieser Artikel beschreibt die vollständige Einrichtung einer produktionsfähigen Rust-Toolchain mit **MSVC (Microsoft Visual C++)** unter **Windows**, einschließlich Erstellung einer `.exe`-Datei aus einem Beispielprogramm.
|
||||
|
||||
## Inhalt
|
||||
|
||||
- [Rust-Toolchain mit MSVC unter Windows einrichten](#rust-toolchain-mit-msvc-unter-windows-einrichten)
|
||||
- [Inhalt](#inhalt)
|
||||
- [Voraussetzungen](#voraussetzungen)
|
||||
- [1. Rust installieren](#1-rust-installieren)
|
||||
- [2. Visual Studio Build Tools installieren](#2-visual-studio-build-tools-installieren)
|
||||
- [Schritt-für-Schritt](#schritt-für-schritt)
|
||||
- [3. Umgebungsvariablen setzen (optional)](#3-umgebungsvariablen-setzen-optional)
|
||||
- [4. Beispielprojekt erstellen](#4-beispielprojekt-erstellen)
|
||||
- [5. Projekt kompilieren](#5-projekt-kompilieren)
|
||||
- [Debug-Build (schnell, nicht optimiert)](#debug-build-schnell-nicht-optimiert)
|
||||
- [Release-Build (optimiert, kleine `.exe`)](#release-build-optimiert-kleine-exe)
|
||||
- [6. Optional: `.exe` testen](#6-optional-exe-testen)
|
||||
- [7. Troubleshooting](#7-troubleshooting)
|
||||
- [8. Alternative: Toolchain in einem Offline-Installer vorbereiten](#8-alternative-toolchain-in-einem-offline-installer-vorbereiten)
|
||||
- [Zusammenfassung](#zusammenfassung)
|
||||
- [Weiterführende Themen](#weiterführende-themen)
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Windows 10 oder 11 (64 Bit)
|
||||
- Administratorrechte
|
||||
- Mindestens 2 GB freier Speicherplatz
|
||||
|
||||
## 1. Rust installieren
|
||||
|
||||
Lade das offizielle Rust-Installationsprogramm herunter und führe es aus:
|
||||
|
||||
<https://rustup.rs>
|
||||
|
||||
Beim Setup:
|
||||
|
||||
- **Toolchain wählen**: `default host triple: x86_64-pc-windows-msvc`
|
||||
- Folge dem Assistenten, um `rustc`, `cargo` und `rustup` zu installieren.
|
||||
|
||||
Verifiziere die Installation:
|
||||
|
||||
```shell
|
||||
rustc --version
|
||||
cargo --version
|
||||
```
|
||||
|
||||
## 2. Visual Studio Build Tools installieren
|
||||
|
||||
Die Rust-Toolchain mit MSVC benötigt den **"C++ Build Tools"**-Teil von Visual Studio.
|
||||
|
||||
### Schritt-für-Schritt
|
||||
|
||||
1. Lade den **Visual Studio Installer**:
|
||||
- <https://visualstudio.microsoft.com/de/visual-cpp-build-tools/>
|
||||
|
||||
2. Wähle bei der Installation:
|
||||
- ✅ **C++ Build Tools**
|
||||
- Und in der rechten Spalte:
|
||||
- ✅ "MSVC v14.x - VS 2022 C++ x64/x86-Buildtools"
|
||||
- ✅ "Windows 10 SDK" oder "Windows 11 SDK" (je nach Zielsystem)
|
||||
- ✅ "C++ CMake-Tools für Windows" (optional für CMake-Projekte)
|
||||
|
||||
3. Installiere alles und starte das System neu, falls verlangt.
|
||||
|
||||
## 3. Umgebungsvariablen setzen (optional)
|
||||
|
||||
Falls du die Buildtools über Kommandozeile verwenden willst, öffne:
|
||||
|
||||
```cmd
|
||||
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
|
||||
```
|
||||
|
||||
Das setzt temporär alle notwendigen Umgebungsvariablen für den Build-Prozess.
|
||||
|
||||
## 4. Beispielprojekt erstellen
|
||||
|
||||
```cmd
|
||||
cargo new hello_world
|
||||
cd hello_world
|
||||
```
|
||||
|
||||
Beispielcode in `src/main.rs`:
|
||||
|
||||
```rust
|
||||
fn main() {
|
||||
println!("Hallo Welt – kompiliert mit MSVC!");
|
||||
}
|
||||
```
|
||||
|
||||
## 5. Projekt kompilieren
|
||||
|
||||
### Debug-Build (schnell, nicht optimiert)
|
||||
|
||||
```cmd
|
||||
cargo build
|
||||
```
|
||||
|
||||
### Release-Build (optimiert, kleine `.exe`)
|
||||
|
||||
```cmd
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
Die fertige `.exe` liegt unter:
|
||||
|
||||
.\target\release\hello_world.exe
|
||||
|
||||
## 6. Optional: `.exe` testen
|
||||
|
||||
```cmd
|
||||
.\target\release\hello_world.exe
|
||||
```
|
||||
|
||||
## 7. Troubleshooting
|
||||
|
||||
- **Fehlermeldung `link.exe not found`?**
|
||||
→ Build-Tools sind nicht korrekt installiert (siehe Schritt 2)
|
||||
|
||||
- **Fehlermeldung zu fehlendem SDK?**
|
||||
→ Stelle sicher, dass du das passende Windows SDK mit installiert hast
|
||||
|
||||
- **MSVC und GNU Toolchain gleichzeitig installiert?**
|
||||
→ Du kannst über `rustup` zwischen beiden wechseln:
|
||||
|
||||
```cmd
|
||||
rustup show
|
||||
rustup default stable-x86_64-pc-windows-msvc
|
||||
```
|
||||
|
||||
## 8. Alternative: Toolchain in einem Offline-Installer vorbereiten
|
||||
|
||||
Wenn du das Setup auf mehreren Rechnern ohne Internetzugang durchführen möchtest, siehe [separater Artikel zur Erstellung eines Installationsmediums](./rust-offline-installation.md).
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
| Komponente | Aufgabe |
|
||||
|------------------|----------------------------------|
|
||||
| Rustup | Verwaltung von Toolchains |
|
||||
| Cargo | Buildsystem und Paketmanager |
|
||||
| MSVC Build Tools | C++-Compiler/Linker für Windows |
|
||||
| `vcvars64.bat` | Aktiviert Build-Umgebung |
|
||||
| `cargo build` | Erstellt `.exe` mit Rust und MSVC |
|
||||
|
||||
## Weiterführende Themen
|
||||
|
||||
- Einbindung von Ressourcen und Icons in die `.exe`
|
||||
- Verwendung von `cc`/`bindgen` für C-Bindings
|
||||
- Cross-Kompilierung mit `x86_64-pc-windows-gnu` oder Linux-Zielsystemen
|
||||
- Automatisierter Build via Makefile oder PowerShell
|
@ -8,3 +8,6 @@ dokus/git/git-ssh-remote.md
|
||||
dokus/git/git.md
|
||||
dokus/asciidoc/asciidoctor-theme-bug-workaround.md
|
||||
dokus/apache-plesk/lets-encrypt-plesk.md
|
||||
dokus/git/git-submodule-leitfaden.md
|
||||
dokus/rust/rust-toolchain-msvc.md
|
||||
dokus/rust/rust-offline-installation.md
|
||||
|
Loading…
x
Reference in New Issue
Block a user