使用Perl的ExtUtils :: MakeMaker,如何使用与我的XS模块相同的设置编译可执行文件?

Sin*_*nür 8 c perl makemaker perl-xs

给定一个使用C库的Perl XS模块,假设有一个正确设置的Makefile.PL,以便所有头和库位置,编译器和链接器标志等都能正常工作.

现在,假设我想要包含一个小型C程序,该程序包含使用相同底层C库的XS模块.什么是正确的,独立于平台的方式来指定目标可执行文件,以便使用相同的设置和标志构建它?

如果我做以下事情

sub MY::postamble {
    return <<FRAG;
target$Config{exe_ext}: target$Config{obj_ext}

target$Config{obj_ext}: target.c

FRAG
}
Run Code Online (Sandbox Code Playgroud)

我没有得到我在参数中设置的那些包含位置,库列表等WriteMakefile.如果我开始手工编写规则,我必须考虑至少make,dmakenmake.如果使用ExtUtils :: CBuilder,我无法想出指定要链接的库的直接方法.

我肯定错过了什么.如果你能指出的话,我将不胜感激.

Leo*_*ans 2

EU::MM 不知道如何创建可执行文件。如果您需要这样做,则需要考虑各种编译器工具链。我至少做过一次,但我并不声称它是完全便携的(只是足够便携)。

一个长期的解决方案是一个合适的编译框架,我一直在努力,但它相当重要。