Tag: perl xs

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

给定一个使用C库的Perl XS模块,假设有一个正确设置的Makefile.PL,以便所有头和库位置,编译器和链接器标志等都能正常工作。 现在,假设我想在所述XS模块中包含一个小型C程序,该模块使用相同的底层C库。 什么是正确的,独立于平台的方式来指定目标可执行文件,以便使用相同的设置和标志构建它? 如果我做以下事情 sub MY::postamble { return <<FRAG; target$Config{exe_ext}: target$Config{obj_ext} target$Config{obj_ext}: target.c FRAG } 我没有得到那些包含位置,库列表等我在WriteMakefile的参数中WriteMakefile 。 如果我开始手动编写规则,我必须考虑至少make , dmake和nmake 。 如果使用ExtUtils :: CBuilder,我无法想出指定要链接的库的直接方法。 我肯定错过了什么。 如果你能指出来,我将不胜感激。

在嵌入式C应用程序中从Perl调用C函数

好吧,这是一个非常有趣的问题,并且可能没有任何简单的方法可以做到这一点,但想到我会在决定修改Perl是我的基本答案之前抛弃它。 所以我有一个以嵌入式方式调用Perl脚本的C应用程序。 这一切都很好,花花公子,我可以传递信息并获取信息非常棒。 但是,现在进入我的下一次征服; 我需要允许我的嵌入式脚本能够调用原始C叫它的C应用程序中的一些函数。 这很重要,因为XSUB会要求它是一个外部库; 但我不希望它成为一个外部库我希望它是对C函数的直接调用。 现在也许这可以通过XSUB完成,我刚刚阅读并理解错误。 Application -(run)-> Perl Application Perl 这不能是外部库的原因是因为我依赖于仅在应用程序中创建/存储的数据。