是否可以一起编译多种语言,以获得最好的不同语言。

有帮助吗?

解决方案

绝对有可能 关联 如果编译器和链接器都兼容,则将它们共同编译后(如果适当编程)。例如:

g77 -c one.f
gcc -c two.c
gcc -o together one.o two.o

这会编译一个fortran文件,然后是一个c文件,然后将它们链接在一起,将它们链接在一起 together (假设他们彼此正确拨打;-)使用GCC套件的工具套件。

Microsoft的.NET是将多种语言一起使用的一种流行方式-C#,F#,Ironpython,Ironruby等。 Visual Studio将把这些编译处理成兼容的代码,并将其在组件中一起连接在一起,但是如果需要,您也可以“手动”进行。

如果通过“一起编译”,则是指在同一文件中具有多种不同的语言,这也是可能的,但较稀有 - 例如,某些C编译器具有扩展名,可以让您在同一文件中表达“内联”汇编语言。

其他提示

是的,这是可能的,但是很大程度上取决于特定语言。例如,常规完成调用python的C函数或C ++类。

在C. Do-able中清洁处理Algol-68 thunk确实很难,但我认为我不想每天这样做,

.NET平台是多语言。鹦鹉非常适合混合Perl,Python,Ruby。你想做什么?

结合语言的另一个好例子是Java平台。您可以使用Java Intermix Groovy,Jython,Jruby,Scala,Clojure和其他语言。不同的语言需要不同的编译器,但是您通常可以从一种语言调用另一种语言。 Groovy和Scala特别适合于操作。

哦,Java本地接口(JNI)让您可以从Java调用C,C ++,汇编和其他语言。

(.NET平台与其他海报所指出的相同的属性共享。)

如果您使用的是.NET,则可以将不同语言的项目编译为NetModules,然后将其链接到单个DLL/EXE中。 Visual Studio不支持这一点,但是MSBuild确实如此。获取编译的最简单方法是编辑.csproj文件的副本,并将输出类型更改为“模块”,然后仅对它运行msbuild。然后使用“链接”命令将模块链接到最终的EXE/DLL中。

看一眼 swig. 。它包裹着你 C/C++ 代码,您可以从几乎任何其他语言中调用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top