使用NativeCall为Windows和Linux发布用于C库的Perl 6绑定的最佳策略是什么?
开发人员是否需要编译.dll和.so文件并使用perl6代码将它们上传到github?或者perl6上有一个选项,比如perl5,用Cll源代码捆绑C源文件,C编译器将作为make和make install的一部分运行?
答案 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
}
...
软件包管理员zef和panda支持此方法,并允许通过perl6 -I. -MBuild -e 'Builder.new.build($*CWD)'
手动运行
Here是一个有效的例子