跳轉到內容

Ruby 程式設計/標準庫/mkmf

來自華夏公益教科書,開放的書籍,開放的世界

一般用法

[編輯 | 編輯原始碼]

mkmf.rb 檔案的一般用法通常類似於 Linux 程式的 autoconf/automake/configure -- 它確定適當的編譯/連結選項,然後針對這些選項編譯檔案。

通常,您將在 gem 中的 extconf.rb 檔案頂部有一個

require 'mkmf'

一般用法是然後編輯一些全域性變數(“神奇”變數),這些變數將用於編譯行。

# push a define:
$defs.push("-D#{name}")
# or $preload
# or $CFLAGS
# or $LDFLAGS
# etc.

並且您可能需要編輯 CONFIG['xxx'] 以在構建過程中新增更多指令。

然後在您的 extconf.rb 檔案的末尾

create_makefile "name_of_final_lib" # the name of the .so file to create

這將建立一個名為 Makefile 的檔案,該檔案將編譯當前目錄中的所有 .{c,cpp} 檔案到 .o 檔案,然後將它們全部連結到 name_of_final_lib.so。

請注意,在名為 name_of_final_lib.so 的檔案中,它必須有一個 Init_filename 方法,該方法將在 .so 檔案首次載入時在載入時執行。

有關如何使用它的更多說明,請參見 此處 底部附近。

華夏公益教科書