Windows

Ruby 支援幾個 Windows 的原生建置平台。

使用 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

需求

  1. Windows 7 或更新版本。

  2. Visual C++ 12.0 (2013) 或更新版本。

    注意如果您想要建置 x64 版本,請使用 x64 的原生編譯器。

  3. 請設定環境變數 INCLUDELIBPATH 以從命令列正確執行所需的指令。

    注意建置 ruby 需要下列指令。

    • nmake

    • cl

    • ml

    • lib

    • dumpbin

  4. 如果您想要從 GIT 來源建置,則需要下列指令。

    • patch

    • sed

    • ruby 2.0 或更新版本

    您可以使用 scoop 安裝它們,例如

    scoop install git ruby sed patch
    
  5. 您需要使用 vcpkg 安裝所需的函式庫,例如

    vcpkg --triplet x64-windows install openssl libffi libyaml zlib
  6. 啟用您的命令列的指令延伸。這是 cmd.exe 的預設行為。如果您想要明確啟用它,請使用 /E:ON 選項執行 cmd.exe

如何編譯和安裝

  1. 在您的建置目錄中執行 win32\configure.bat。您可以指定目標平台作為參數。例如,執行 configure --target=i686-mswin32 您也可以指定安裝目錄。例如,執行 configure --prefix=<install_directory> 安裝目錄的預設值為 /usr 。預設的 PLATFORM 為 32 位元平台上的 i386-mswin32_MSRTVERSION,或 x64 平台上的 x64-mswin64_MSRTVERSIONMSRTVERSION 是 Microsoft Runtime Library 的 2 或 3 位元版本。

  2. 如果您想要變更可執行檔的名稱,請在 Makefile 中變更 RUBY_INSTALL_NAMERUBY_SO_NAME。並加入 RUBYW_INSTALL_NAME 以變更可執行檔的名稱,同時不顯示主控台視窗。

  3. 您需要指定 vcpkg 目錄以使用 --with-opt-dir 選項,例如 configure --with-opt-dir=C:\vcpkg\installed\x64-windows

  4. 如果您從 GIT 來源建置,請執行 nmake up

  5. 執行 nmake

  6. 執行 nmake check

  7. 執行 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