什么是“运行时”?

时间:2010-06-14 05:49:24

标签: runtime

我的公司总是遇到软件无法正常工作的问题,因为“运行时间”或丢失。我听到人们说了很多(你需要32位运行时间,微软运行时间等等)。

究竟是指什么? DLL文件?有些不同?有人可以澄清一下吗?

4 个答案:

答案 0 :(得分:4)

运行时基本上是代码运行的时间(与编译时或链接时相反)。

在您看到的上下文中,它表示运行时库,这些库是加载执行程序所需的库。

这是动态链接的东西(DLL或共享对象),因为静态链接的代码不能丢失(它在可执行文件本身中)。

一个典型的例子是依赖于Microsoft的C运行时或.NET库,但不随产品一起提供。这意味着您的可执行文件将在任何已经存在这些库的计算机上运行(例如安装了Visual Studio的计算机),但不一定是每台要运行代码的计算机。

我回答了一个问题here关于静态和动态链接之间的区别,这有助于增加您的知识。动态链接允许您更新应用程序的某些部分,而无需重新编译或重新链接。您可以通过删除新版本的DLL来执行此操作。不幸的是,将该代码放在一个单独的文件中意味着它可能会丢失。

这可能是问题的原因之一,但我怀疑最有可能的是有人没有很好地完成安装代码,否则所有需要的东西都会被安装。

答案 1 :(得分:3)

此上下文中的runtimeruntime library - 共享库(在Windows上确实是DLL),最常见的是指提供该语言基本功能的库。它实现了被认为“内置于”语言核心的功能。因此,如果没有安装这样的库,或者如果程序是专门静态链接的(需要将所有内容打包到可执行文件中),则不会运行使用需要运行时库的编译器编译的程序。

答案 2 :(得分:2)

为您提供一个实际示例 - 以下是一些常见运行时的链接:

这些是系统范围的安装 - 因此任何需要特定运行时的软件都可以在安装后使用它。

答案 3 :(得分:1)

他们可能指的是微软的第三方库和.NET框架。

如果应用程序是用.NET语言编写的,那么贵公司的应用程序可能会使用某些第三方库,如MFC,ATL等。 C#,VB.NET,如果你正在开发使用Java,那么必须安装一个JRE(Java Runtime env)才能运行应用程序。

如果未在客户的计算机上安装/部署所需的dll /框架,则可能会出现“运行时错误”。

这是一个部署问题 - 可以解决正确的安装过程 - 例如安装程序可以检查是否安装了所需的框架,如果没有安装它作为安装过程的一部分。