Windows

Ruby unterstützt einige native Build-Plattformen für Windows.

Ruby mit Mingw mit UCRT erstellen

Die einfachste Build-Umgebung ist eine Standardinstallation von RubyInstaller-Devkit und git-for-windows. Sie mögen VSCode als Editor verwenden.

Build-Beispiele

Die Kernentwicklung von Ruby kann entweder in Windows cmd erfolgen, z. B.:

ridk install
ridk enable ucrt64

pacman -S --needed %MINGW_PACKAGE_PREFIX%-openssl %MINGW_PACKAGE_PREFIX%-libyaml %MINGW_PACKAGE_PREFIX%-libffi

mkdir c:\work\ruby
cd /d c:\work\ruby

git clone https://github.com/ruby/ruby src

sh ./src/autogen.sh

mkdir build
cd build
sh ../src/configure -C --disable-install-doc
make

oder in MSYS2 bash, z. B.:

ridk install
ridk enable ucrt64
bash

pacman -S --needed $MINGW_PACKAGE_PREFIX-openssl $MINGW_PACKAGE_PREFIX-libyaml $MINGW_PACKAGE_PREFIX-libffi

mkdir /c/work/ruby
cd /c/work/ruby

git clone https://github.com/ruby/ruby src

./src/autogen.sh
cd build
../src/configure -C --disable-install-doc
make

Wenn Sie eine andere MSYS2-Umgebung über einen anderen Paketmanager wie scoop haben, müssen Sie angeben, dass $MINGW_PACKAGE_PREFIX mingw-w64-ucrt-x86_64 ist. Und Sie müssen die Option --with-opt-dir zum configure-Befehl hinzufügen, z. B.:

sh ../../ruby/configure -C --disable-install-doc --with-opt-dir=C:\Users\username\scoop\apps\msys2\current\ucrt64

Ruby mit Visual C++ erstellen

Requirement

  1. Windows 10/Windows Server 2016 oder neuer.

  2. Visual C++ 14.0 (2015) oder neuer.

    Hinweis, wenn Sie die x64-Version erstellen möchten, verwenden Sie den nativen Compiler für x64.

    Die Mindestanforderungen sind: * VC++/MSVC auf den Build-Tools der VS 2017/2019/2022-Version. * Windows 10/11 SDK

    Sie können Visual Studio Build Tools mit winget installieren. win32\install-buildtools.cmd ist eine Batch-Datei zur Installation der Mindestanforderungen, ausgenommen der IDE usw.

  3. Setzen Sie die Umgebungsvariablen INCLUDE, LIB, PATH, um die erforderlichen Befehle ordnungsgemäß von der Befehlszeile aus auszuführen. Diese werden normalerweise von vsdevcmd.bat oder vcvarall*.bat korrekt gesetzt. Sie können den folgenden Befehl ausführen, um sie in Ihrer Befehlszeile zu setzen.

    Zum nativen Build

    cmd /k win32\vssetup.cmd

    Zum Cross-Build von arm64-Binärdateien

    cmd /k win32\vssetup.cmd -arch=arm64

    Zum Cross-Build von x64-Binärdateien

    cmd /k win32\vssetup.cmd -arch=x64

    Diese Batch-Datei ist ein Wrapper für vsdevcmd.bat und Optionen werden unverändert daran übergeben. win32\vssetup.cmd -help für andere Kommandozeilenoptionen.

    Hinweis zum Erstellen von Ruby sind folgende Befehle erforderlich.

    • nmake

    • cl

    • ml

    • lib

    • dumpbin

  4. Wenn Sie aus dem GIT-Quellcode erstellen möchten, sind folgende Befehle erforderlich.

    • git

    • ruby 3.1 oder neuer

    Sie können scoop verwenden, um sie zu installieren, z. B.:

    scoop install git ruby
    

    Die Windows-Version von git, die mit autocrlf konfiguriert ist, hat den Wert true. Die Ruby-Testsuite kann mit autocrlf auf true fehlschlagen. Sie können ihn auf false setzen, z. B.:

    git config --global core.autocrlf false
  5. Sie müssen die erforderlichen Bibliotheken mit vcpkg im Verzeichnis des Ruby-Repositorys installieren, z. B.:

    vcpkg --triplet x64-windows install
  6. Aktivieren Sie die Befehlserweiterungen Ihrer Befehlszeile. Dies ist das Standardverhalten von cmd.exe. Wenn Sie es explizit aktivieren möchten, führen Sie cmd.exe mit der Option /E:ON aus.

Kompilieren und installieren

  1. Führen Sie win32\configure.bat in Ihrem Build-Verzeichnis aus. Sie können die Zielplattform als Argument angeben. Führen Sie beispielsweise configure --target=i686-mswin32 aus. Sie können auch das Installationsverzeichnis angeben. Führen Sie beispielsweise configure --prefix=<install_directory> aus. Das Standardinstallationsverzeichnis ist /usr.

  2. Wenn Sie an die Namen von ausführbaren Dateien und DLLs anhängen möchten, geben Sie --program-prefix und --program-suffix an, z. B. win32\configure.bat --program-suffix=-$(MAJOR)$(MINOR).

    Außerdem geben die Optionen --install-name und --so-name die genauen Basisnamen der ausführbaren Dateien bzw. DLL-Dateien an, z. B. win32\configure.bat --install-name=$(RUBY_BASE_NAME)-$(MAJOR)$(MINOR).

    Standardmäßig wird der Name für die ausführbare Datei ohne Konsolenfenster aus dem oben angegebenen RUBY_INSTALL_NAME generiert, indem ruby durch rubyw ersetzt wird. Wenn Sie dies weiter ändern möchten, ändern Sie RUBYW_INSTALL_NAME direkt in der Makefile.

  3. Sie müssen das vcpkg-Verzeichnis angeben, um die Option --with-opt-dir zu verwenden, z. B. win32\configure.bat --with-opt-dir=C:/vcpkg_installed/x64-windows

  4. Führen Sie nmake up aus, wenn Sie aus dem GIT-Quellcode erstellen.

  5. Führen Sie nmake aus

  6. Führen Sie nmake prepare-vcpkg mit Administratorrechten aus, wenn Sie vcpkg-installierte Bibliotheken wie libssl-3-x64.dll in das Build-Verzeichnis kopieren müssen.

  7. Führen Sie nmake check aus

  8. Führen Sie nmake install aus

Build-Beispiele

Fehler

Sie dürfen **keine** Pfadnamen verwenden, die Leerzeichen enthalten, als Ruby-Quellverzeichnis. Diese Einschränkung ergibt sich aus dem Verhalten von !INCLUDE-Direktiven von NMAKE.

Sie können Ruby in jedem Verzeichnis erstellen, einschließlich des Quellverzeichnisses, außer im win32-Verzeichnis im Quellverzeichnis. Dies ist eine Einschränkung, die aus der Pfadsuchmethode von NMAKE resultiert.

Abhängigkeitsverwaltung

Ruby verwendet vcpkg zur Verwaltung von Abhängigkeiten auf der mswin-Plattform.

Sie können es unter dem Build-Verzeichnis aktualisieren und installieren, z. B.:

nmake update-vcpkg # Update baseline version of vcpkg
nmake install-vcpkg # Install vcpkg from build directory

Icons

Beliebige Symboldateien (*.ico) im Build-Verzeichnis, Verzeichnisse, die mit der Make-Variable icondirs angegeben sind, und das Verzeichnis win32 im Ruby-Quellverzeichnis werden gemäß ihren Basisnamen in DLLs oder ausführbare Dateien aufgenommen.

$(RUBY_INSTALL_NAME).ico or ruby.ico   --> $(RUBY_INSTALL_NAME).exe
$(RUBYW_INSTALL_NAME).ico or rubyw.ico --> $(RUBYW_INSTALL_NAME).exe
the others                             --> $(RUBY_SO_NAME).dll

Obwohl keine Icons mit dem Ruby-Quellcode verteilt werden, können Sie beliebige verwenden. Sie finden viele Bilder über Suchmaschinen. Zum Beispiel wurden die folgenden aus dem Ruby Logo Kit erstellt.