我可以使用 2 种语言制作 1 个程序吗?

发布于 2024-12-12 05:48:41 字数 404 浏览 0 评论 0 原文

可能的重复:
用 2 种语言编写程序?

注意:我见过用 2 种语言编写程序? 但没有找到好的答案IMO。

我可以使用 2 种、3 种甚至 4 种语言来制作一个程序吗?我需要做什么才能完成这个任务(可能是用 Perl 和 C)?我使用的是 Windows 7 64 位。

Possible Duplicate:
Writing a program in 2 languages?

Note: I've seen Writing a program in 2 languages? but found no good answer IMO.

Can I use 2, 3, or even 4 languages to make a single program? What do I need to do to accomplish this (probably in Perl and C)? I am using Windows 7 64-bit.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

九公里浅绿 2024-12-19 05:48:41

正如人们已经提到的,是的,只要有绑定就可以。 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

As people have already mentioned, yes you can as long as there are bindings. Inline::C provides easy access to C from Perl, although I find XS to be almost as easy once you start to get the hang of it.

For now:

#!/usr/bin/env perl

use strict;
use warnings;

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

print name() . "\n";

So that begs the question, what are you trying to do? If you need something more in-depth, you can look at the source for my (work in progress) Math::GSLx::ODEIV2.

憧憬巴黎街头的黎明 2024-12-19 05:48:41

如果您想从 C 和 perlembed http://perldoc.perl.org/perlxstut.html" rel="nofollow">perlxstut 如果你想从 Perl 执行 C 代码。

The relevant Perl documentation is perlembed if you want to execute Perl code from C and perlxstut if you want to execute C code from Perl.

情感失落者 2024-12-19 05:48:41

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

One approach is to use some of the Perl modules in the
Inline::* namespace. For example, Inline::C allows you to write C subroutines directly in your Perl source file. The module transparently handles compiling the C routines to a shared library and dynamically loading the library. There are 'Inline' modules for a variety of languages - in varying states of completeness and support.

爱格式化 2024-12-19 05:48:41

当然,您可以使用任意多种语言。您只需要适当的工具即可将这些单元绑定在一起。每种语言都有自己的内置支持来与其他语言进行互操作,并且通常也有这样做的库。您需要的具体工具取决于您使用的语言,但我知道的每种语言至少都支持与 C 函数的绑定。

Sure, you can use as many languages as you want. You just need the proper tools to bind the units together. Each language has its own builtin support to interoperate with other languages, and often libraries that do that as well. The exact tools you need would depend on the languages you use, but every language I know supports at least binding to C functions.

温折酒 2024-12-19 05:48:41

查看第 21.3 章。 编程 Perl 中的扩展 Perl(使用 Perl 中的 C)。

Check out chapter 21.3. Extending Perl (Using C from Perl) in Programming Perl.

一百个冬季 2024-12-19 05:48:41

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

If you're looking for Perl binding for C, take a look at swig.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文