加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 哪些工具可以帮助构建XS项目?

发布时间:2020-12-15 21:57:20 所属栏目:大数据 来源:网络整理
导读:我最近开始使用 perlxstut学习XS,教程建议我使用旧的 h2xs工具创建我的模块来创建基于 ExtUtils::MakeMaker的项目.然而,对于纯Perl项目,h2xs / EUMM长期以来一直不赞成 Module::Install,Module::Build或 Dist::Zilla. 是否有更现代的方式来创建XS项目? Modu
我最近开始使用 perlxstut学习XS,教程建议我使用旧的 h2xs工具创建我的模块来创建基于 ExtUtils::MakeMaker的项目.然而,对于纯Perl项目,h2xs / EUMM长期以来一直不赞成 Module::Install,Module::Build或 Dist::Zilla.

是否有更现代的方式来创建XS项目? Module::Starter可以创建XS项目吗? Module :: Build或Dist :: Zilla可以构建XS项目吗?他们的pod页面对此事保持沉默.

另一方面,针对h2xs / EUMM的批评是否适用于XS项目?如果你还需要一个C编译器,那么要求make工具是否合理?

编辑:我看到this question回答了关于创建项目的问题.我仍然想知道构建:EUMM是唯一的选择,还是Module :: Build和Dist :: Zilla也能够构建XS?

解决方法

事实证明,Module :: Build完全能够编译XS.这是一个完整的Build.PL我设法凑到一起:
use strict;
use Module::Build;

my $build = Module::Build->new(
    module_name  => 'Chocolate::Belgian',dynamic_config => 1,license      => 'perl',requires     => {
        'Module::Build' => '0.19',# xs
        'Test::More' => 0,},extra_compiler_flags => '-Iinclude',extra_linker_flags   => '',c_source     => 'src',needs_compiler => 1,xs_files     => {
        './Belgian.xs' => 'lib/Chocolate/Belgian.xs',);

$build->create_build_script;

这将在include /目录中创建.h包含文件(如ppport.h),在src /目录中生成.c源文件,在项目基目录中创建与Chocolate :: Belgian包对应的.xs文件. .

extra_compiler_flags对应于make CCFLAGS,而extra_linker_flags对应于LIBS(因此你可能需要-lm来链接C数学库).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读