哪些编程语言可以生成自包含的窗口.exes?

时间:2010-04-06 15:16:27

标签: windows exe

我想轻松部署Windows应用程序,并且想知道哪些编程系统可以创建完全自包含的Windows .exe文件?

作为一个优点,如果可以使用同一来源的MacOSX和Linux完成相同的操作,这将是一个奖励。我看了一下Realbasic,但他们放弃了单个.exe概念。

更新:我正在寻找可以从Windows XP到Windows 7运行的东西,无论安装什么版本的.NET。这甚至可能吗?

12 个答案:

答案 0 :(得分:8)

Delphi编译为一个可执行文件,并生成本机Windows可执行文件。所以没有依赖任何类型的框架。如果您使用Free Pascal (fpc)Lazarus IDE,您甚至可以从同一来源为Linux和Apple开发。

如果您使用外部dll这会变得有点棘手,但您可以将它们打包在资源文件中并仍然维护一个exe属性。

答案 1 :(得分:6)

你当然可以用C / C ++做到这一点。从技术上讲,运行时库是必需的,但它们应该已经安装在任何windows,mac或linux系统上。

使用.NET,您可以编译为EXE,但当然需要.NET框架。对于较新版本的Windows,它应该默认安装,但在旧版本(XP或更旧版本?)上可能会或可能不会。当然,你不能指望单声道在linux或mac上默认存在。

答案 2 :(得分:4)

对于Windows,以下语言是可行的:

  • C(MS,gcc)
  • C ++(MS,g ++,Digital Mars)
  • D(数字火星)
  • 德尔福(Embarcadero ???你怎么拼写?只是舌头上的旅行不是吗?)
  • Fortran(英特尔,索尔福德软件)
  • Visual Basic 6(MS)
  • Lua(你需要一个special tool来做,但它是可行的)
  • C#,VB.Net,F#,J#等(假设您不介意使用.Net技术)

答案 3 :(得分:3)

您可以使用Tcl / tk。您应该研究的技术是“starpack”,它将运行时可执行文件(starkit)与特定于平台的运行时(“tclkit”)相结合,以创建单文件可执行文件。值得注意的是,它不仅仅是编译代码,而是一个完整的独立虚拟文件系统,可以包含图像,声音,数据等。

这种技术适用于来自相同代码库的许多平台。唯一不同的是特定于平台的运行时。您甚至可以“交叉编译”,因为您可以将多个平台的运行时复制到开发框中,然后为每个平台构建星形包,而无需实际位于每个平台上。

答案 4 :(得分:3)

Tcl可以做到这一点,特别是通过制作starpacks。可以使用相同的代码为所有平台生成它们。请注意,这还包括所有必需的运行时库(除了C库之类的东西,但你不想在正常情况下使 静态)。

答案 5 :(得分:3)

JavaFX 2.2支持这一点。它允许创建面向Windows,Mac OS和Linux的自包含应用程序。

请点击此链接获取更多信息:http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm

答案 6 :(得分:2)

我建议看看AutoIt。它是一种易于使用的脚本语言,可以编译成exe,因此不需要运行时。这只适用于Windows。

http://www.autoitscript.com/autoit3/index.shtml

来自网站:

  

AutoIt v3是一款类似BASIC的免费软件   脚本语言专为   自动化Windows GUI和一般   脚本。 ... AutoIt也很小,   自给自足,将在所有人身上运行   开箱即用的Windows版本   没有烦人的“运行时”!

答案 7 :(得分:2)

C / C ++ 的PureBasic 德尔福 VB6

我希望这有帮助:)

答案 8 :(得分:2)

这是构建小型独立EXE的许多基本类编程语言的良好来源。有些是Windows和Linux的跨平台:

www.basic.mindteq.com

答案 9 :(得分:2)

您可以使用简单且便宜的Liberty Basic,您可以轻松地为Windows制作独立程序,但无法传输到MacOS或Linux。

答案 10 :(得分:1)

您可以使用ILMerge

为使用.NET语言的Windows执行此操作
  

ILMerge是一个用于将多个.NET程序集合并到单个.NET程序集中的实用程序。它适用于可执行文件和DLL,并带有几个选项来控制输出的处理和格式。有关详细信息,请参阅随附的文档。

然而:

  

目前,ILMerge仅适用于基于Windows的平台。它还不支持Rotor或Mono。

答案 11 :(得分:0)

QBasic可以: - )

我用它编写了一些命令行工具!