Perl 6 NativeCall和C源文件

时间:2016-03-03 20:52:50

标签: perl6 nativecall

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

开发人员是否需要编译.dll和.so文件并使用perl6代码将它们上传到github?或者perl6上有一个选项,比如perl5,用Cll源代码捆绑C源文件,C编译器将作为make和make install的一部分运行?

1 个答案:

答案 0 :(得分: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)'手动运行

Here是一个有效的例子