跳转到内容

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 文件首次加载时在加载时运行。

有关如何使用它的更多说明,请参见 此处 底部附近。

华夏公益教科书