我可以在 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 编译器)构建使用清单指定依赖关系的应用程序?