【问题标题】:Programming language that doesn't require a runtime/dependency to be installed不需要安装运行时/依赖项的编程语言
【发布时间】:2013-02-05 21:25:22
【问题描述】:

我想知道一种不需要在目标系统上安装运行时/依赖项的编程语言。我的主要目标是 Windows XP 及更高版本。

我尝试了 Autohotkey,但它没有许多高级功能。

首先,请确认 'C++' 需要在目标系统上安装运行时/依赖项是 Win XP 或更高版本。其次,请向我推荐一个不需要安装依赖项的 C++ 替代方案。

更新:我将使用 CodeBlocks!用它编译的 C++ 代码是否需要依赖?

更新:抱歉误解,我所说的 CodeBlocks 是指 CodeBlocks 的默认编译器(即:GNU GCC CompilerMinGW)。

【问题讨论】:

  • Visual c++ 通常需要将库安装在目标机器上,但您可以将 DLL 与构建的 .exe 文件一起打包。您还可以进行“静态”构建,将库函数编译到 .exe 中。这些中的任何一个都可能对您有用。 (仅在我确定其他人可以填写正确答案的情况下发表评论)
  • 似乎要求相当严格。大多数程序都有依赖关系,为什么你的不同?你想做什么?
  • @PeterWood 大多数程序确实依赖于存在的操作系统,但它们没有理由依赖其他任何东西。您可以静态链接除操作系统之外的所有内容,并且不应该存在依赖关系。 (事实上​​,如果您希望代码在不同的系统上运行,您应该静态链接大多数库,该系统可能有不同的、不兼容的库版本。)

标签: c++ dependencies runtime


【解决方案1】:

一切通常取决于项目,而不是语言。例如,在 Visual Studio 的 C++ 中编译的程序使用一些运行时库才能正常工作。但是,您可以通过这种方式配置项目,使这些库包含在可执行文件中,因此不需要额外的依赖项。 Delphi 的工作原理类似。

这是 Visual Studio 项目的设置:

如果您选择“DLL”选项,您的程序将需要运行时 DLL。否则它将是独立的,运行时将合并到您的二进制文件中。


编辑:回应问题编辑

我再说一遍:这取决于项目,而不是编译器或IDE。

【讨论】:

  • 这取决于传递给链接器的选项。对于 Visual Studios,这些是在项目文件中指定的;对于大多数其他系统,在 makefile 中。
【解决方案2】:

如果你想创建一个不需要任何其他东西就可以运行的程序,除了基本操作系统(没有 .NET、没有 Java、没有 Perl、没有运行时库等),那么你最好的选择是使用CC++ 并将您的程序编译为单个静态编译的可执行文件。

在实践中比较难实现,但可以做到。

【讨论】:

    【解决方案3】:

    Codeblocks 不是编译器,而是 IDE,可以使用不同的编译器。 最常见的是 MinGW

    要遵守 minGW 以便静态链接所有标准库,您需要配置项目(请参阅“项目设置”),以便链接器选项包括 -static 标志。

    你甚至可以通过 stecifying 更具体

    -static-libgcc
    -static-libstdc++
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      相关资源
      最近更新 更多