可以编译为 DLL 并可以在 Linux Web 服务器后端使用的现代语言?

Posted

技术标签:

【中文标题】可以编译为 DLL 并可以在 Linux Web 服务器后端使用的现代语言?【英文标题】:Modern language that can be compiled to DLL and can be used in Linux web server back-end? 【发布时间】:2013-11-07 10:29:31 【问题描述】:

我打算编写一个具有以下先决条件的程序:

    必须能够编译为 DLL,才能运行 Excel 工作簿中的函数(旧版兼容性) 尽可能现代、高水平和快速发展。 必须能够在 Linux Web 服务器后端调用相同的函数(前端将使用 javascript 编写)。 编译器必须像啤酒一样免费。

是否有一种语言符合所有这三个要求?我看过:

Python: 执行 2) 和 3),但对于 1) 没有好的解决方案。 http://code.google.com/p/shedskin/ 有一个从 Python 到 C++ 的翻译器,但它是实验性的。 C++: 支持 1) 但不支持 2),并且对于 3) 来说并不理想。 C#: 据我所知,1) 和 2),但不是 3)。

我知道如何从 Excel 中运行 exe 文件,所以我可以通过这种方式解决它,但 DLL 会是更好的解决方案,原因有两个:

    我可以不通过命令行直接调用方法,并且 如果我在应用程序中包含 .exe 文件而不是包含 .dll 文件,我的用户更有可能产生怀疑。 (我知道没有真正的区别,但我的用户不知道。)

谢谢!

【问题讨论】:

请注意,Python 是一种脚本语言,因此不会编译为 DLL,而是分发源代码并在解释器中运行。您的 DLL 需求来自哪里?如果您担心可移植性/可分发性,也有脚本语言的方法。 我知道我可以使用 py2exe 使 Python 代码可移植,但 DLL 会更好,原因有两个:1)我可以直接调用方法而无需通过命令行,2)我的用户是如果我在应用程序中包含 .exe 文件,可能比包含 .dll 文件更可疑。迷信,我知道。 exe是我的备份解决方案,但我想知道有没有我没有想到的解决方案 充分的理由。只是想确保您知道。 感谢您指出我需要澄清这一点,我更新了问题。 Java?您可以使用gcj 编译它 【参考方案1】:

C#:据我所知,执行 1) 和 2),但不执行 3)。

Mono(非微软,开源,跨平台 CLI 实现)在 linux 上工作,可用于网络服务器。

【讨论】:

谢谢,在这种情况下,这似乎是最好的选择。

以上是关于可以编译为 DLL 并可以在 Linux Web 服务器后端使用的现代语言?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2010 Express 中将 cpp 编译为 dll

将 Python 代码编译为 Pascal DLL

用于 C++ 的 C# 包装器,但仅编译为静态库

将 protobuf-net RuntimeTypeModel 编译为 C#,而不是 DLL

linux驱动开发-模块驱动

VC将同一份代码同时编译为Dll和Exe的方法