Ruby 编程/标准库/mkmf
外观
< Ruby 编程
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 文件首次加载时在加载时运行。
有关如何使用它的更多说明,请参见 此处 底部附近。