我可以在 VC++ 6.0 编译的应用程序中嵌入 Strawberry Perl 或在编译器不匹配的情况下使用 Inline::C 吗?

Posted

技术标签:

【中文标题】我可以在 VC++ 6.0 编译的应用程序中嵌入 Strawberry Perl 或在编译器不匹配的情况下使用 Inline::C 吗?【英文标题】:Can I embed Strawberry Perl in a VC++ 6.0 compiled application or use Inline::C with the compiler mismatch? 【发布时间】:2008-12-17 15:56:33 【问题描述】:

我正在研究将 perl 5.10 嵌入到使用 VC++ 6.0 编译的大型 C++ 应用程序中。这就引出了两个问题。

1) 简单地使用 Strawberry Perl 作为依赖项而不是使用 VC++ 6.0 编译我自己的 perl 是不是一个坏主意?考虑到编译器不匹配,Strawberry 甚至可以工作吗?我认为 Strawberry 是用 mingw 编译的。我宁愿不必保留我自己的自定义 perl 构建。

2) 如果我走草莓路线,像 Inline::C 这样的东西会在嵌入式应用程序中工作吗?您将有 VC++ 6.0 代码调用 mingw 编译的草莓,然后调用用户 mingw 编译的代码。 Inline::C 将是我尝试使用嵌入式 perl 解释器实现的一项很棒的功能。

【问题讨论】:

【参考方案1】:

考虑到所涉及的不确定性,我建议使用 MSVC 编译 Perl,而不是在此应用程序中尝试使用 Strawberry Perl。在perlwin32 和related discussion 中有说明,Perl Monks 可以指导您。

作为 Strawberry Perl 的前发布经理,我可以告诉您,如果您已经对编译器感到满意,那么做这件事并不难。

--xdg

【讨论】:

但是与Strawberry相比,缺少自定义编译的win32 perl。没有集成的 cpan 和 mingw 东西。我可以很容易地让 Inline::C 与我自己的 win32 perl 一起工作吗? 草莓只是 MinGW。它在编译期间“配置”。因此,自定义编译的 win32 perl 将使用您编译 perl 的 MSVC 从 CPAN 编译内容。而“集成”CPAN 只是预配置的 CPAN。您可以复制 \strawberry\perl\lib\CPAN\Config.pm 并根据需要进行调整。 但我绝对不想将 MSVC 放在客户端机器上。我想使用一个包装整齐的mingw,没有任何许可证烦恼。是否可以将 mingw 编译的目标代码加载到 MSVC 编译的 perl 中?【参考方案2】:

Activestate perl 是用 VC++ 6.0 编译的。它可以使用 VC++ 6.0 或 MinGW 来编译模块,因为它们链接到相同的 C 运行时库 msvcrt.dll。最好使用 MinGW,因为 VC++ 6.0 既不是免费的也不是现成的(除非您可以确定它已安装在目标机器上。)You can PPM install Mingw now,并从 CPAN 编译模块。大量模块编译没有问题。您可能需要配置 CPAN:

o conf yaml_module ''(两个单引号,中间没有)

o 配置提交

Inline::C 有效。

【讨论】:

以上是关于我可以在 VC++ 6.0 编译的应用程序中嵌入 Strawberry Perl 或在编译器不匹配的情况下使用 Inline::C 吗?的主要内容,如果未能解决你的问题,请参考以下文章

我的vc 6.0 可以编译,可用链接,点击执行,显示ready,但弹不出黑框

是否可以使用 Visual Studio 6.0(VC98 编译器)构建使用清单指定依赖关系的应用程序?

为啥在网上找的一些c语言程序的代码在vc++6.0中编译总是出现错误?求指教

VC++6.0执行CL.EXE出错

VC6.0程序编译后如何为程序添加图标

visual c++ 6.0编译时总有一个错误是怎么回事?