Windows¶ ↑
Ruby 支持 Windows 的几个原生构建平台。
-
mswin:使用 Microsoft Visual C++ 编译器和 vcruntimeXXX.dll 构建
-
mingw-msvcrt:使用 Mingw 编译器和 msvcrtXX.dll 构建
-
mingw-ucrt:使用 Mingw 编译器和 Windows 通用 CRT 构建
使用带有 UCRT 的 Mingw 构建 Ruby¶ ↑
最简单的构建环境只是标准的 RubyInstaller-Devkit 安装和 git-for-windows。您可能想使用 VSCode 作为编辑器。
构建示例¶ ↑
Ruby 核心开发可以在 Windows cmd
中完成,例如
ridk enable ucrt64 pacman -S --needed %MINGW_PACKAGE_PREFIX%-openssl %MINGW_PACKAGE_PREFIX%-libyaml %MINGW_PACKAGE_PREFIX%-libffi cd c:\ mkdir work cd work git clone https://github.com/ruby/ruby cd c:\work\ruby sh autogen.sh sh configure -C --disable-install-doc make
或在 MSYS2 bash
中完成,例如
ridk enable ucrt64 bash pacman -S --needed $MINGW_PACKAGE_PREFIX-openssl $MINGW_PACKAGE_PREFIX-libyaml $MINGW_PACKAGE_PREFIX-libffi cd /c/ mkdir work cd work git clone https://github.com/ruby/ruby cd ruby ./autogen.sh ./configure -C --disable-install-doc make
使用 Visual C++ 构建 Ruby¶ ↑
要求¶ ↑
-
Windows 10/Windows Server 2016 或更高版本。
-
Visual C++ 14.0 (2015) 或更高版本。
注意 如果您想构建 x64 版本,请使用 x64 的原生编译器。
-
请设置环境变量
INCLUDE
、LIB
、PATH
,以便从命令行正确运行所需的命令。这些通常由vcvarall*.bat
正确设置。注意 构建 Ruby 需要以下命令。
-
nmake
-
cl
-
ml
-
lib
-
dumpbin
-
-
如果您想从 GIT 源代码构建,则需要以下命令。
-
git
-
sed
-
ruby
3.0 或更高版本
您可以使用 scoop 来安装它们,例如
scoop install git sed ruby
-
-
您需要在 Ruby 存储库的目录下使用 vcpkg 安装所需的库,例如
vcpkg --triplet x64-windows install
-
启用命令行的命令扩展。这是
cmd.exe
的默认行为。如果您想显式启用它,请使用/E:ON
选项运行cmd.exe
。
如何编译和安装¶ ↑
-
在您的构建目录中执行
win32\configure.bat
。您可以将目标平台指定为参数。例如,运行configure --target=i686-mswin32
。您还可以指定安装目录。例如,运行configure --prefix=<install_directory>
。安装目录的默认值为/usr
。 -
如果您想附加到可执行文件和 DLL 文件名,请指定
--program-prefix
和--program-suffix
,例如win32\configure.bat --program-suffix=-$(MAJOR)$(MINOR)
。此外,
--install-name
和--so-name
选项分别指定可执行文件和 DLL 文件的确切基本名称,例如win32\configure.bat --install-name=$(RUBY_BASE_NAME)-$(MAJOR)$(MINOR)
。默认情况下,不带控制台窗口的可执行文件的名称是通过将上面指定的 RUBY_INSTALL_NAME 中的
ruby
替换为rubyw
生成的。如果您想使其更加不同,请直接修改 Makefile 中的 RUBYW_INSTALL_NAME。 -
您需要指定 vcpkg 目录以使用
--with-opt-dir
选项,例如win32\configure.bat --with-opt-dir=C:/vcpkg_installed/x64-windows
-
如果您是从 GIT 源代码构建,请运行
nmake up
。 -
运行
nmake
-
如果您需要将 vcpkg 安装的库(如
libssl-3-x64.dll
)复制到构建目录,请使用管理员权限运行nmake prepare-vcpkg
。 -
运行
nmake check
-
运行
nmake install
构建示例¶ ↑
-
在 Ruby 源代码目录中构建。
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
-
在 Ruby 源代码目录的相对目录中构建。
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
-
在不同的驱动器上构建。
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:
-
构建 x64 版本(需要原生 x64 VC++ 编译器)
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
Bug¶ ↑
您不能使用包含任何空格字符的路径名作为 Ruby 源代码目录,此限制来自 NMAKE
的 !INCLUDE
指令的行为。
您可以在任何目录(包括源代码目录)中构建 Ruby,除了源代码目录中的 win32
目录。这是 NMAKE
的路径搜索方法中的限制。
依赖管理¶ ↑
Ruby 使用 vcpkg 来管理 mswin 平台上的依赖项。
您可以在构建目录下更新和安装它,例如
nmake update-vcpkg # Update baseline version of vcpkg nmake install-vcpkg # Install vcpkg from build directory
图标¶ ↑
构建目录、使用 icondirs make 变量指定的目录以及 Ruby 源代码目录下的 win32
目录中的任何图标文件 (*.ico
) 将根据其基本名称包含在 DLL 或可执行文件中。$(RUBY_INSTALL_NAME).ico 或 ruby.ico –> $(RUBY_INSTALL_NAME).exe $(RUBYW_INSTALL_NAME).ico 或 rubyw.ico –> $(RUBYW_INSTALL_NAME).exe 其他 –> $(RUBY_SO_NAME).dll
虽然 Ruby 源代码中没有分发任何图标,但您可以使用任何您喜欢的图标。您可以通过搜索引擎找到许多图像。例如,以下内容来自 Ruby 徽标工具包
-
官方网站上的小型 favicon