Windows¶ ↑
Ruby 支援幾個 Windows 的原生建置平台。
-
mswin:使用 Microsoft Visual C++ 編譯器與 vcruntimeXXX.dll 建置
-
mingw-msvcrt:使用 Mingw 的編譯器與 msvcrtXX.dll 建置
-
mingw-ucrt:使用 Mingw 的編譯器與 Windows Universal 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 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 Runtime Library 的 2 或 3 位元版本。 -
如果您想要變更可執行檔的名稱,請在
Makefile
中變更 RUBY_INSTALL_NAME 和 RUBY_SO_NAME。並加入 RUBYW_INSTALL_NAME 以變更可執行檔的名稱,同時不顯示主控台視窗。 -
您需要指定 vcpkg 目錄以使用
--with-opt-dir
選項,例如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