2010-06-14 111 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),最通常指的是提供該語言基本功能的庫。它實現了被認爲是「內置於」語言核心的功能。因此,如果沒有安裝編譯器需要運行時庫的程序,如果沒有安裝這樣的庫,或者程序特別靜態鏈接(需要打包到可執行文件中的所有內容),則不會運行程序。