gpt4 book ai didi

raku - Perl 6 NativeCall 和 C 源文件

转载 作者:行者123 更新时间:2023-12-05 00:56:46 28 4
gpt4 key购买 nike

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

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

最佳答案

这些库不需要先编译(尽管可以)。要首先完成此操作,您需要一个 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是一个工作示例

关于raku - Perl 6 NativeCall 和 C 源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35782800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com