Windows
Ruby unterstützt einige native Build-Plattformen für Windows.
-
mswin: Build mit Microsoft Visual C++ Compiler mit vcruntimeXXX.dll
-
mingw-msvcrt: Build mit Compiler für Mingw mit msvcrtXX.dll
-
mingw-ucrt: Build mit Compiler für Mingw mit Windows Universal CRT
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
-
Windows 10/Windows Server 2016 oder neuer.
-
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
wingetinstallieren.win32\install-buildtools.cmdist eine Batch-Datei zur Installation der Mindestanforderungen, ausgenommen der IDE usw. -
Setzen Sie die Umgebungsvariablen
INCLUDE,LIB,PATH, um die erforderlichen Befehle ordnungsgemäß von der Befehlszeile aus auszuführen. Diese werden normalerweise vonvsdevcmd.batodervcvarall*.batkorrekt 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.batund Optionen werden unverändert daran übergeben.win32\vssetup.cmd -helpfür andere Kommandozeilenoptionen.Hinweis zum Erstellen von Ruby sind folgende Befehle erforderlich.
-
nmake -
cl -
ml -
lib -
dumpbin
-
-
Wenn Sie aus dem GIT-Quellcode erstellen möchten, sind folgende Befehle erforderlich.
-
git -
ruby3.1 oder neuer
Sie können scoop verwenden, um sie zu installieren, z. B.:
scoop install git ruby
Die Windows-Version von
git, die mitautocrlfkonfiguriert ist, hat den Werttrue. Die Ruby-Testsuite kann mitautocrlfauftruefehlschlagen. Sie können ihn auffalsesetzen, z. B.:git config --global core.autocrlf false
-
-
Sie müssen die erforderlichen Bibliotheken mit vcpkg im Verzeichnis des Ruby-Repositorys installieren, z. B.:
vcpkg --triplet x64-windows install
-
Aktivieren Sie die Befehlserweiterungen Ihrer Befehlszeile. Dies ist das Standardverhalten von
cmd.exe. Wenn Sie es explizit aktivieren möchten, führen Siecmd.exemit der Option/E:ONaus.
Kompilieren und installieren
-
Führen Sie
win32\configure.batin Ihrem Build-Verzeichnis aus. Sie können die Zielplattform als Argument angeben. Führen Sie beispielsweiseconfigure --target=i686-mswin32aus. Sie können auch das Installationsverzeichnis angeben. Führen Sie beispielsweiseconfigure --prefix=<install_directory>aus. Das Standardinstallationsverzeichnis ist/usr. -
Wenn Sie an die Namen von ausführbaren Dateien und DLLs anhängen möchten, geben Sie
--program-prefixund--program-suffixan, z. B.win32\configure.bat --program-suffix=-$(MAJOR)$(MINOR).Außerdem geben die Optionen
--install-nameund--so-namedie 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
rubydurchrubywersetzt wird. Wenn Sie dies weiter ändern möchten, ändern Sie RUBYW_INSTALL_NAME direkt in der Makefile. -
Sie müssen das vcpkg-Verzeichnis angeben, um die Option
--with-opt-dirzu verwenden, z. B.win32\configure.bat --with-opt-dir=C:/vcpkg_installed/x64-windows -
Führen Sie
nmake upaus, wenn Sie aus dem GIT-Quellcode erstellen. -
Führen Sie
nmakeaus -
Führen Sie
nmake prepare-vcpkgmit Administratorrechten aus, wenn Sie vcpkg-installierte Bibliotheken wielibssl-3-x64.dllin das Build-Verzeichnis kopieren müssen. -
Führen Sie
nmake checkaus -
Führen Sie
nmake installaus
Build-Beispiele
-
Build im Ruby-Quellverzeichnis.
ruby source directory: C:\ruby build directory: C:\ruby install directory: C:\usr\local
C: cd \ruby win32\configure --prefix=/usr/local nmake nmake check nmake install
-
Build im relativen Verzeichnis vom Ruby-Quellverzeichnis aus.
ruby source directory: C:\ruby build directory: C:\ruby\mswin32 install directory: C:\usr\local
C: cd \ruby mkdir mswin32 cd mswin32 ..\win32\configure --prefix=/usr/local nmake nmake check nmake install
-
Build auf einem anderen Laufwerk.
ruby source directory: C:\src\ruby build directory: D:\build\ruby install directory: C:\usr\local
D: cd D:\build\ruby C:\src\ruby\win32\configure --prefix=/usr/local nmake nmake check nmake install DESTDIR=C:
-
Build der x64-Version (erfordert nativer x64 VC++ Compiler)
ruby source directory: C:\ruby build directory: C:\ruby install directory: C:\usr\local
C: cd \ruby win32\configure --prefix=/usr/local --target=x64-mswin64 nmake nmake check nmake install
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.
-
Kleines Favicon auf der offiziellen Seite