4

在 Windows 和 Linux 上使用 NativeCall 为 C 库发布 Perl 6 绑定的最佳策略是什么?

开发者是否需要同时编译.dll和.so文件并用perl6代码上传到github?或者在 perl6 上有一个选项,比如 perl5,将 C 源文件与 Perl 6 代码捆绑在一起,C 编译器将作为 make 和 make install 的一部分运行?

4

1 回答 1

5

这些库不需要先编译(尽管可以)。要首先完成此操作,您需要Build.pm在发行版的根目录中有一个文件:

class Builder {
    method build($dist-path) {
        # do build stuff to your module
        # which is located at $dist-path
    }

    # Only needed for panda compatability
    method isa($what) {
        return True if $what.^name eq 'Panda::Builder';
        callsame;
    }
}

然后你会想要使用像LibraryMake这样的模块。这里我们make在方法中使用它的例程build

use LibraryMake;

class Builder {
    method build($dist-path) {
        make($dist-path, "$dist-path/resources");

        # or you could do the appropriate `shell` calls
        # yourself and have no extra dependencies
    }

    ...

此方法由包管理器zefpanda支持,并且还允许通过以下方式手动运行它perl6 -I. -MBuild -e 'Builder.new.build($*CWD)'

是一个工作示例

于 2016-03-04T02:44:28.970 回答