2010-06-14 66 views
4

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

究竟是指什么? DLL文件?有些不同?任何人都可以澄清?

回答

4

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

在上下文中,您会看到它,它意味着运行时库,这些库需要加载执行您的程序。

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

一个典型的例子是依赖微软的C运行时或.NET库,但不会将它们随产品一起发货。这意味着你的可执行文件可以运行在那些已经安装了这些库的机器上(比如那些安装了Visual Studio的机器),但不一定是你想运行代码的每台计算机。

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

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

+0

太好了,谢谢! 那么这些“运行时”是DLL? (如我所料)我知道它不是lib文件,但我认为可能还有别的东西。 谢谢! – Russel 2010-06-14 06:55:19

+0

是的,这几乎在Windows下。他们在其他平台上的命名不同,但概念是相同的。 – paxdiablo 2010-06-14 07:03:12

1

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

如果应用程序是用.NET语言编写的,您公司的应用程序可能会使用一些第三方库,例如MFC,ATL等。 C#,VB.NET,如果您使用Java进行开发,那么必须安装JRE(Java运行时环境),以便应用程序运行。

如果所需的dll /框架没有安装/部署在客户机器上,您可能会收到“运行时错误”。

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

3

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