我可以使用2种语言制作1个节目吗?

时间:2011-10-24 20:52:10

标签: c windows perl programming-languages 64-bit

  

可能重复:
  Writing a program in 2 languages?

注意:我见过Writing a program in 2 languages?,但发现没有好的答案IMO。

我可以使用2种,3种甚至4种语言制作单个节目吗?我需要做些什么(可能在Perl和C中)?我使用的是Windows 7 64位。

6 个答案:

答案 0 :(得分:4)

正如人们已经提到过的那样,只要有绑定就可以。 Inline::C提供了从Perl轻松访问C的功能,但是一旦你开始掌握它,我发现XS几乎一样容易。

目前:

#!/usr/bin/env perl

use strict;
use warnings;

use Inline C => <<'END_C';
char* name () {
  return "Joel";
}
END_C

print name() . "\n";

所以这就引出了一个问题,你想做什么?如果您需要更深入的内容,可以查看我的(正在进行的工作)Math::GSLx::ODEIV2的来源。

答案 1 :(得分:3)

如果要从Perl执行Perl代码,则需要执行相关的Perl文档perlembed,如果要从Perl执行C代码,则需要perlxstut

答案 2 :(得分:2)

一种方法是使用一些Perl模块 Inline::*命名空间。例如,Inline::C允许您直接在Perl源文件中编写C子例程。该模块透明地处理将C例程编译为共享库并动态加载库。有各种语言的“内联”模块 - 具有不同的完整性和支持状态。

答案 3 :(得分:1)

当然,您可以根据需要使用多种语言。您只需要适当的工具来绑定这些单元。每种语言都有自己的内置支持,可以与其他语言进行互操作,通常也可以使用这些语言。您需要的确切工具取决于您使用的语言,但我所知道的每种语言都支持至少绑定到C函数。

答案 4 :(得分:1)

查看 21.3章节。在Programming Perl中扩展Perl(使用Perl中的C)

答案 5 :(得分:0)

如果您正在寻找C的Perl绑定,请查看swig