gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:03:57 24 4
gpt4 key购买 nike

给定一个使用 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
}

我没有得到那些我在 WriteMakefile 的参数中设置的位置、库列表等。如果我开始手动编写规则,我必须至少考虑 makedmakenmake。如果使用 ExtUtils::CBuilder,我想不出一个直接的方法来指定要链接的库.

我一定是遗漏了什么。如果您能指出,我将不胜感激。

最佳答案

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

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

关于c - 使用 Perl 的 ExtUtils::MakeMaker,如何使用与 XS 模块相同的设置编译可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161910/

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