Windows¶ ↑
Ruby 支持几个 Windows 的原生构建平台。
-
mswin: 使用 Microsoft Visual C++ 编译器和 vcruntimeXXX.dll 构建
-
mingw-msvcrt: 使用 Mingw 编译器和 msvcrtXX.dll 构建
-
mingw-ucrt: 使用 Mingw 编译器和 Windows 通用 CRT 构建
使用 Mingw 和 UCRT 构建 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 7 或更高版本。
-
Visual C++ 12.0 (2013) 或更高版本。
注意 如果您想构建 x64 版本,请使用 x64 的原生编译器。
-
请设置环境变量
INCLUDE
、LIB
、PATH
,以便从命令行正确运行所需的命令。注意 构建 ruby 需要以下命令。
-
nmake
-
cl
-
ml
-
lib
-
dumpbin
-
-
如果您想从 GIT 源代码构建,则需要以下命令。
-
patch
-
sed
-
ruby 2.0 或更高版本
您可以使用 scoop 安装它们,例如
scoop install git ruby sed patch
-
-
您需要使用 vcpkg 安装所需的库,例如
vcpkg --triplet x64-windows install openssl libffi libyaml zlib
-
启用命令行的命令扩展。这是
cmd.exe
的默认行为。如果您想显式启用它,请使用/E:ON
选项运行cmd.exe
。
如何编译和安装¶ ↑
-
在您的构建目录中执行
win32\configure.bat
。您可以指定目标平台作为参数。例如,运行configure --target=i686-mswin32
您也可以指定安装目录。例如,运行configure --prefix=<install_directory>
安装目录的默认值为/usr
。默认的 PLATFORM 在 32 位平台上为i386-mswin32_
MSRTVERSION,在 x64 平台上为x64-mswin64_
MSRTVERSION。MSRTVERSION 是 Microsoft 运行时库的 2 位或 3 位版本号。 -
如果您想更改可执行文件的名称,请在
Makefile
中更改 RUBY_INSTALL_NAME 和 RUBY_SO_NAME。如果您还想更改没有控制台窗口的可执行文件的名称,请添加 RUBYW_INSTALL_NAME。 -
您需要使用
--with-opt-dir
选项指定 vcpkg 目录,例如configure --with-opt-dir=C:\vcpkg\installed\x64-windows
-
如果您是从 GIT 源代码构建,请运行
nmake up
。 -
运行
nmake
-
运行
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
错误¶ ↑
您不能使用包含任何空格字符的路径名作为 Ruby 源代码目录,此限制来自 NMAKE
的 !INCLUDE
指令的行为。
您可以在任何目录中构建 Ruby,包括源代码目录,但源代码目录中的 win32
目录除外。这是源于 NMAKE
的路径搜索方法的限制。
图标¶ ↑
构建目录中、icondirs 变量指定的目录和 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 logo kit
-
官方网站上的小型 favicon